这是为什么呢
删除后 代入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都是一样的。
具体还得看上文的操作