这是为什么呢
删除后 代入if语句中的是x=10进行运算
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;
}5,5是对的啊,因为你在main函数中首先赋值10了,所以不管if语句里面重新给x赋值与否,main和if语句中的x都是一样的。
具体还得看上文的操作