#include <stdio.h>
int x = 100; //全局作用域:每个函数都可以使用,也可以在函数内部修改
void Fun()
{
printf("%d\n",x);
}
int main()
{
printf("%d\n",x); 1.打印100,这个x为全局变量x
int x = 50; //函数作用域:在函数内应用,函数结束即失效,
printf("%d\n",x); 2.打印50,这个x为函数内的x
if(10 > 5)
{
int x = 20; //块作用域:例for(int i=0),循环结束就变量失效
printf("%d\n",x); 3.打印20,这个x块作用域
x += 10; ****这个x+=10,是个幌子,因为在这个if语句结束后,这个块作用域的变量x失效
}
printf("%d\n",x); 4.打印50,和2.一样,3.的块作用域变量x没有改变这个函数作用域的x
x += 20; ****这个x+=10,也是个幌子,这里的x加上了20,也没有实质作用
Fun(); 5.打印100;Fun()这个函数,而它打印的x时那个全局变量的x,为100;
return 0;
}
注:1-5,为打印先后顺序
代码如下:
#include <stdio.h>
int x = 100;
void Fun()
{
printf("%d\n",x);
}
int main()
{
printf("%d\n",x);
int x = 50;
printf("%d\n",x);
if(10 > 5)
{
int x = 20;
printf("%d\n",x);
x += 10;
}
printf("%d\n",x);
x += 20;
Fun();
return 0;
}