#include <stdio.h>
int a,b;
void func()
{
a = 100;
b = 200;
}
void func2()
{
printf("%d,%d\n",a,b);
}
main()
{
int a=1,b=2;
func();
func2();
printf("a=%d,b=%d\n",a,b);
}
结果是
100,200
a=1,b=2
可见此时全局变量变为100 200
但是局部变量屏蔽全局变量 输出的是1 2
执行func时因为a=100 b=200是执行语句 但它自己又没有定义a和b
所以引用全局变量a和b 从而全局变量变为100 200
网友评论