C语言问题?

能具体解释一下为什么吗,谢谢了。... 能具体解释一下为什么吗,谢谢了。 展开
 我来答
syht2000
高粉答主

2019-12-29 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
int a=4;
void main()
int a=2; //这种局部变量,会隐藏掉上一级定义的同名变量,下面也是一样
{
int a=0;跟上面一样,这里定义的a只有本层{}中有效。
所以上面的复合语句中,会输出0,下面调用sub1时,实际上传入的是main中的int a=2;又有a=a-1,所以会输出1,下面也是一样的,main中的a值并未变化,还是2,所以输出2,当调用sub2时,因为最外层的全局a并未被隐藏,所以会输出4
匿名用户
2019-12-29
展开全部
你应该去看一下C语言变量的作用域,看完马上就明白了,直接百度搜“C语言 作用域”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式