| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 657 人关注过本帖
标题:关于存储类型的问题
只看楼主 加入收藏
toyix
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2008-7-14
结帖率:50%
收藏
 问题点数:0 回复次数:6 
关于存储类型的问题
int a;这样定义一个全局变量  ,他属于什么存储类型,书上说,c语言规定,函数内凡未加存储类型说明的变量均视为自动变量(auto),不过auto属于动态存储方式啊。也就是说只有被使用时才分配内存,这与全局变量(刚定义时就分配内存也不符合啊),全局变量到底属于什么存储类型?


还有一个问题顺便确定一下,在main函数中声明的变量是局部变量吧?谢谢解答下这两个问题,
搜索更多相关主题的帖子: 类型 
2008-09-21 22:29
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
语言规定,[bo]函数内[/bo]凡未加存储类型说明的变量均视为自动变量(auto)

请仔细看书。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-21 22:35
小辛巴
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-8-30
收藏
得分:0 
这应该是变量的生存周期问题,全局变量在整个程序的执行过程中都不消亡,直到退出程序,
main()函数中的变量若无  static  就是局部变量
2008-09-21 23:02
toyix
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2008-7-14
收藏
得分:0 
哦 谢谢楼上两位    那全局变量虽然没加static,那也是属于静态变量吧
2008-09-23 08:31
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
是的

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-09-23 08:49
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 
看来大家还是没有搞清楚 加static修饰的全局变量 和不加static修饰的全局变量的用法


全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。

[[it] 本帖最后由 blackkey 于 2008-9-23 09:59 编辑 [/it]]

2008-09-23 09:55
toyix
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2008-7-14
收藏
得分:0 
很详细  谢了
2008-09-23 16:02
快速回复:关于存储类型的问题
数据加载中...
 
   



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

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