| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 468 人关注过本帖
标题:关于C语言作用域问题
只看楼主 加入收藏
tammeny
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-7-11
结帖率:0
收藏
 问题点数:0 回复次数:3 
关于C语言作用域问题
[local]1[/local]
代码段一:

#include<stdio.h>
int x=567;
void show()
{
int x=222;
printf("在show函数中,x的值为:%d\n",x);
}
int main()
{
show();
printf("在main函数中,x的值为:%d\n",x);
return 0;
}
第二个printf输出的是567


[local]1[/local]
代码段二:
#include<stdio.h>
int x=567;
void show()
{
x=222;
printf("在show函数中,x的值为:%d\n",x);
}
int main()
{
printf("在main函数中,x的值为:%d\n",x);
show();
printf("在nian函数中,x的值为:%d\n",x);
x=3;
printf("在main函数中,x的值为:%d\n",x);
return 0;
}
show();下面那个printf输出的是222

问题:为什么printf输出的值不同
搜索更多相关主题的帖子: include return C语言 
2013-11-08 23:15
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:0 
因为你第二个程序中show函数的x前面没加int

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-11-08 23:25
唐书豪
Rank: 2
等 级:论坛游民
帖 子:28
专家分:52
注 册:2013-5-10
收藏
得分:0 
在函数中定义的变量不加static修饰符,就是普通局部变量,可以和全局变量重名,普通局部变量的作用于是从改函数内定义开始到函数结束,系统自动释放存放在栈里面的局部变量。
全局变量的作用域在整个程序直到运行结束。
如果在局部变量的作用域内,局部变量有效,上面第二段代码函数中你没有定义变量,只是引用全局变量并且改变了值,所以之后打印的X值被你改变了
2013-11-09 11:46
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
这是语文没学好,字面意思都看不懂

总有那身价贱的人给作业贴回复完整的代码
2013-11-09 13:15
快速回复:关于C语言作用域问题
数据加载中...
 
   



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

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