| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 335 人关注过本帖
标题:全局变量功能是否与static局部变量有相似之处?
只看楼主 加入收藏
fu82740731
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-7-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
全局变量功能是否与static局部变量有相似之处?
static局部变量只赋初值一次,以后每次调用函数时,不在重新赋初值而是只保留上次函数调用结束时的值。

全局变量是否也有这样的功能?

请大家帮忙解答下?
2012-07-01 19:41
一只小蚂蚁
Rank: 2
等 级:论坛游民
威 望:2
帖 子:19
专家分:92
注 册:2012-6-19
收藏
得分:0 
一样的 static减少全局名字空间 所以多用static
2012-07-01 23:18
lxqlyld
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:116
专家分:125
注 册:2012-6-18
收藏
得分:7 
有相似的功能,但静态数据成员比全局变量有两个优势:1、静态数据成员没有进入程序的全局空间,所以不存在与程序中其他全局名字冲突的可能性;2、静态数据成员可以实现信息隐藏,可以为private成员,而全局对象不能
2012-07-03 13:49
jiantiewen
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:61
专家分:307
注 册:2012-6-22
收藏
得分:0 
三楼的搞错了,人家问的不是类中的成员。。。在同一个源文件的代码中全局变量与静态局部变量可以说是没有区别,都是在内存中分配得固定的内存位置。至于二楼说的减小全局命名空间,我实在难以想象究竟怎样的程序会对全局命名空间有这样的要求,望二楼具体指点。
2012-07-04 02:43
一只小蚂蚁
Rank: 2
等 级:论坛游民
威 望:2
帖 子:19
专家分:92
注 册:2012-6-19
收藏
得分:0 
我好久没写过C程序了 我现在用的static最多的就是类里静态成员变量和静态成员方法 static有个地方要注意 静态变量后4个地址是个标志
2012-07-04 13:21
jiantiewen
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:61
专家分:307
注 册:2012-6-22
收藏
得分:7 
回复 5楼 一只小蚂蚁
我不理解这句:静态变量后4个地址是标志。
2012-07-04 19:25
一只小蚂蚁
Rank: 2
等 级:论坛游民
威 望:2
帖 子:19
专家分:92
注 册:2012-6-19
收藏
得分:7 
静态成员实现方法就需要标志 不然一个函数内定义个静态变量 执行2次这个函数 难道会定义两次 显然不会
实现方法看这标志是否有置1位 如果有则不会继续定义第二次 所以你可以写个函数测试下 调用两次 第一次之后修改内存 把变量地址后4字节改为0
第二次调用则会重新定义静态变量
2012-07-04 22:24
快速回复:全局变量功能是否与static局部变量有相似之处?
数据加载中...
 
   



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

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