| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1909 人关注过本帖
标题:变量的全局作用域,请求
取消只看楼主 加入收藏
zflsky
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-3-25
收藏
 问题点数:0 回复次数:4 
变量的全局作用域,请求
根据下面的说法,我用VC++6.0得到的应该是6,6,但是我得到的却是6,0;都被搞糊涂了呀,请大侠指教!

全局作用域:
         对于具有全局作用域的变量,我们可以在程序的任何位置访问它们。当一个变量是在所有函数的外部声明,也就是在程序的开头声明,那么这个变量就是全局变量。

         void add(int);
         int num;

         main()
         {
             int n=5;
             add(n);
             printf("%d\n",num);     /*输出6*/
         }

         void add(num)         /*形式参数没有指定类型*/
         {
             num++;
             printf("%d\n",num);     /*输出6*/
         }

     上面的main()和add()里面,并没有声明num,但是在最后输出的时候却要求输出num,这是由于在程序的开始声明了num是全局变量,也就是在所有函数里都可以使用这个变量。这时候一个函数里改变了变量的值,其他函数里的值也会出现影响。上面的例子输出都是6,因为在add()函数里改变了num的值,由于num是全局变量,就好象它们两个函数共用一个变量,所以在main()函数里的num也随之改变了。
搜索更多相关主题的帖子: 全局作用 变量 num int add 
2008-04-19 13:34
zflsky
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-3-25
收藏
得分:0 
那怎么样修改才能让函数add影响全局变量的值呢?
比如说,我要值呢没修改才能让输出结果是6,6
谢谢
2008-04-19 14:46
zflsky
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-3-25
收藏
得分:0 
难道要用传址调用
void add(int &num)     ; 我这样修改不行的啊
2008-04-19 14:54
zflsky
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-3-25
收藏
得分:0 
哦,有学到了好有用的东西,感谢啊
2008-04-19 15:04
zflsky
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-3-25
收藏
得分:0 
能不能将你的QQ给我,以后在线的时候可以请教的呀,学得不精,需要帮忙啊
2008-04-19 15:15
快速回复:变量的全局作用域,请求
数据加载中...
 
   



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

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