| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2166 人关注过本帖
标题:main()函数中的变量(局部动态变量),编译阶段分配内存?
取消只看楼主 加入收藏
suishuhao
Rank: 2
等 级:论坛游民
帖 子:89
专家分:10
注 册:2012-9-25
结帖率:61.9%
收藏
 问题点数:0 回复次数:1 
main()函数中的变量(局部动态变量),编译阶段分配内存?
比如如下一个简单的求和程序:
#include<stdio.h>
void main()
{int a,b,c;
a=1;b=2;
c=a+b;
printf("%d\n",c);

}

main()函数中的a,b,c都是局部动态变量,都在栈存储区,我想问:给a,b,c分配地址的时候,是在编译阶段完成的吗?

当然,用户自己定义的函数中的形参和自定义函数中的变量也是栈变量,它们是在运行阶段动态分配的。

-------------------------------------------------------------------


[ 本帖最后由 suishuhao 于 2012-10-12 19:30 编辑 ]
搜索更多相关主题的帖子: 用户 动态 
2012-10-12 19:19
suishuhao
Rank: 2
等 级:论坛游民
帖 子:89
专家分:10
注 册:2012-9-25
收藏
得分:0 
以下是引用yuccn在2012-10-12 19:24:14的发言:

局部变量的内存也不是编译时候分配,是在运行时候调整一下esp而已,这块地址是栈上面的,编译时候怎么分配?
只是这个大小在编译时候就已经确定了的

你看一下汇编代码就知道了
谭浩强 《C程序设计》第三版 219页 第十章 说:在对程序编译时,系统会给这个变量分配内存单元
                           40页:每一个变量被指定为一个确定类型,在编译时就能为其分配相应的存储单元

谭浩强的书在内存管理、编译连接等方面讲的狠迷糊啊。。。。。。。。。





[ 本帖最后由 suishuhao 于 2012-10-12 19:45 编辑 ]
2012-10-12 19:27
快速回复:main()函数中的变量(局部动态变量),编译阶段分配内存?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030037 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved