全部问题 > 当前问题

在一个源文件中,如何判断全局变量被“屏蔽”

匿名课官 2016-1-20 16:09:42

共 5 个回答

董亚辉 2016-1-20 16:10:23

我不会


最佳答案

嘿嘿大人 2016-1-20 16:14:40

就近原则,如果在自定义函数体里面重新定义了与全局变量相同变量名的变量,则在该函数体里面会屏蔽全局变量,执行局部变量,也就是在函数体里面定义的变量

嘿嘿大人 2016-1-20 16:21:45

还有,解析里面说的那个屏蔽的意思是覆盖的意思,就是用新的值覆盖掉原来的值,换言之,就是全局变量的值被改变了,解析用词不当,不理解再问我

匿名课官 2016-1-20 16:23:04

回复 嘿嘿大人:嗯嗯,谢谢

嘿嘿大人 2016-1-20 16:24:00

回复 匿名课官:一定不能混为一谈,不谢,加油吧,嘿嘿

问题来自: 形参和实参
有以下程序:
#include <stdio.h>
int a=1,b=2;
void fun1(int a, int b)
{ printf("%d%d",a,b); }
void fun2()
{ a=3; b=4; }
main()
{ fun1(5,6); fun2();
  printf("%d%d\n",a,b);
}
程序运行后的输出结果是 ______ 。
A. 1256
B. 5634
C. 5612
D. 3456
答案:B
解析:fun1输出的是形参a、b,所以输出56;fun2赋值的是全局变量a、b,在一个源文件中,全局变量被“屏蔽”,所以最后输出34。连在一起是5634。因此选B。