局部与全局
这里的printf("main方法内, x=%d\n", x);输出的为啥不是10,为啥是50呢??2015-08-08
#include <stdio.h>
int x = 77;
void fn1()
{
printf("fn1(): x=%d\n", x);
}
int main()
{
int x = 10;
if(x>0)
{
x = 100;
x /= 2;
printf("if语句内, x=%d\n", x);
}
printf("main方法内, x=%d\n", x);
fn1();
return 0;
}看看代码我们知道了啊.
因为在main()中重新定义了x变量位10.
然后在
if(x>0)
{
x = 100;
x /= 2;
printf("if语句内, x=%d\n", x);
}中是没有重新定义x变量,而是给x变量赋予了新值100.
x = 100;
看到没.是赋值.而不是定义.而后
x /= 2;
也就是50了.在后面的输出自然是50.
举报