为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我if语句中的 intx=100;删除,输出结果会是5,5,77。我觉得应该是是5,10,77

这是为什么呢

正在回答

4 回答

删除后 代入if语句中的是x=10进行运算


0 回复 有任何疑惑可以回复我~
int main()
{
int x = 10;
if(x>0)
{
x=100;           //引用x全局变量进入操作运算,覆盖全局变量x  得出  x1=50
int x=100;       //定义x为局部变量与x全局变量无关,不覆盖全局变量x  得出  x2=10
x /= 2;
printf("if语句内, x=%d\n", x); 
}
printf("main方法内, x=%d\n", x);
fn1();
return 0;
}


0 回复 有任何疑惑可以回复我~

5,5是对的啊,因为你在main函数中首先赋值10了,所以不管if语句里面重新给x赋值与否,main和if语句中的x都是一样的。

0 回复 有任何疑惑可以回复我~

具体还得看上文的操作

0 回复 有任何疑惑可以回复我~
#1

松下闻雪落 提问者

#include <stdio.h> int x = 77; void fn1() { printf("fn1(): x=%d\n", x); } int main() { int x = 10; if(x>0) { int x=100; x /= 2; printf("if语句内, x=%d\n", x); } printf("main方法内, x=%d\n", x); fn1(); return 0; }
2016-06-18 回复 有任何疑惑可以回复我~
#2

松下闻雪落 提问者

这是原代码,我把if中的int x=100;删除后输出5,5,77
2016-06-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我if语句中的 intx=100;删除,输出结果会是5,5,77。我觉得应该是是5,10,77

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信