| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6031 人关注过本帖, 2 人收藏
标题:普通的变量是在编译时还是在运行分配内存单元的?
取消只看楼主 加入收藏
zhenhang
Rank: 1
等 级:新手上路
帖 子:18
专家分:2
注 册:2009-2-3
结帖率:80%
收藏(2)
 问题点数:0 回复次数:3 
普通的变量是在编译时还是在运行分配内存单元的?
谭浩强《C程序设计》第二版中有以下文字描述,我觉得近似乎矛盾了,普通变量的存储单元是什么时候分配的?全局变量的情况又是怎么样的呢?

pg40  “第一个变量被指定为一确定的类型,在编译时就能为其分配相应的存储单元。”

pg201 “如果在程序中定义了一个变量 ,在编译周日就给这个变量分配内存单元。”

pg173 “函数中的局部变量,如不专门声明为static类型存储类别,都是动态分配存储空间的,数据存储在动态存储区中。函数中的形参和函数中定义的变量,都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。”
搜索更多相关主题的帖子: 内存 运行 编译 单元 变量 
2010-02-11 11:50
zhenhang
Rank: 1
等 级:新手上路
帖 子:18
专家分:2
注 册:2009-2-3
收藏
得分:0 
谢谢您的回复,您举例的程序我是能够看懂的。我现在不解的问题是,如果auto型的局部变量是在编译时分配内存的(也就是分配个内存地址),
那么在整个程序运行的过程中这个空间不就不可以由其它的数据占用了,甚至出现一种极端的情况是这个程序运行前,该地址就已经被其他程序占用了。
出现这种情况怎么办,是不是采取相对地址
2010-02-11 18:39
zhenhang
Rank: 1
等 级:新手上路
帖 子:18
专家分:2
注 册:2009-2-3
收藏
得分:0 
也就是说分配的是相对地址!!!!
2010-02-11 18:40
zhenhang
Rank: 1
等 级:新手上路
帖 子:18
专家分:2
注 册:2009-2-3
收藏
得分:0 
回复 6楼 zhddragon
这个问题我感到非常苦恼,您能否留下QQ什么的联系方式,我想进一步向您讨教!!!我的QQ是920035025。
2010-02-11 23:46
快速回复:普通的变量是在编译时还是在运行分配内存单元的?
数据加载中...
 
   



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

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