我又来求助了,关于全局变量的问题
c++吧
全部回复
仅看楼主
level 8
小牛小蟹对对碰
楼主
我们知道全局变量是存放在静态存储区域中的,静态局部变量也是存放在静态存储区域中的。
静态存储变量每次函数调用完都保留调用完之后的值,那如果对全局变量进行函数调用,是否也是同样的情况呢?有谁可以提供一个简短的验证代码吗?谢谢大神们
2016年07月28日 11点07分
1
level 8
小牛小蟹对对碰
楼主
我发现我自己设计的代码得到的结果是每次调用后的结果都是一样的
2016年07月28日 11点07分
2
小牛小蟹对对碰
估计代码有问题
2016年07月28日 11点07分
level 7
纯金◎不锈钢盆
你可以定义一个全局变量a并初始化为0,在main函数里令a=1;再调用函数,令a=2 最后在main函数里打印出来。看值是1还是2
2016年07月28日 11点07分
3
小牛小蟹对对碰
值是1啊,那书上说的可以用全局变量增加函数间数据传递的渠道,也就是等同于带回了多个返回值,岂不是就不成立了
2016年07月29日 09点07分
D一点点懒
@小牛小蟹对对碰
你试了么?
2016年07月29日 18点07分
小牛小蟹对对碰
@D一点点懒
试过了,是1
2016年07月30日 11点07分
南街霓裳
全局变量你给他赋值以后,怎么会是1?
2016年07月30日 12点07分
level 8
小牛小蟹对对碰
楼主
自顶一下
2016年07月29日 09点07分
6
level 8
小牛小蟹对对碰
楼主
顶一下
2016年07月30日 11点07分
7
level 12
l-zh
楼主请贴自己的代码
2016年07月30日 11点07分
8
小牛小蟹对对碰
啊?因为觉得自己的不对就删掉了,那我明天重新打然后贴
2016年07月30日 13点07分
level 9
No穆
帮楼主顶顶
2016年07月30日 20点07分
10
小牛小蟹对对碰
谢谢(๑•̀ㅂ•́)و✧
2016年07月31日 05点07分
level 1
q68257962
int global = 0;
int test(void)
{
return global++;
}
int main(void)
{
test();test();test();
}
2016年07月31日 03点07分
11
小牛小蟹对对碰
可以的,我的问题是test函数的形参表我的是int,也就是从主函数中得到了形参,所以并不是直接对全局变量赋值
2016年07月31日 05点07分
level 8
小牛小蟹对对碰
楼主
谢谢各位的帮助啦,我发现我的问题了,我把函数的形参表弄错了,不应该从主函数中得到形参,而应该直接对全局变量赋值,下面的代码是修改后的
正确的
代码
2016年07月31日 05点07分
12
1