全部问题 > 当前问题

什么是全局变量被屏蔽

是变量的就进原则局部变量把全局变量屏蔽了吗。

要是把fun2放到主函数下面还会吗

飘落的共和国旗 2016-2-25 21:51:51

共 12 个回答

对面 2016-2-25 22:47:54

是的

会的,

对面 2016-2-25 22:47:54

是的

会的,

嘿嘿大人 2016-2-26 08:56:59

屏蔽你可以理解为覆盖,局部变量的作用域之中就会吧全局变量屏蔽,局部变量的 作用域就是定义该局部变量的函数体,和函数体在哪里是没有关系的

飘落的共和国旗 2016-2-26 10:55:42

那fun2定义的变量值只作用与fun2中啊,作用不了主函数中,也就是主函数的变量值和全局变量一样。输出的结果就是5612

飘落的共和国旗 2016-2-26 10:55:54

回复 嘿嘿大人

那fun2定义的变量值只作用与fun2中啊,作用不了主函数中,也就是主函数的变量值和全局变量一样。输出的结果就是5612

最佳答案

嘿嘿大人 2016-2-26 10:57:39

回复 飘落的共和国旗:fun2你在哪里看见了定义变量的语句的,fun2用的是全局变量= =,嘿嘿

飘落的共和国旗 2016-2-26 10:59:43

回复 嘿嘿大人:void fun2()
{ a=3; b=4; }啊

嘿嘿大人 2016-2-26 11:02:19

回复 飘落的共和国旗:知道什么叫定义么?定义是类型加变量名,如果这里是int a=3,b=4;那么你说的就是对的了,但是这里不是,所以这两个a,b调用的是全局变量

飘落的共和国旗 2016-2-26 11:06:00

回复 嘿嘿大人:也就是那个函数是用来改全局变量的

嘿嘿大人 2016-2-26 11:06:27

回复 飘落的共和国旗:是啊,不然你以为呢?嘿嘿

飘落的共和国旗 2016-2-26 11:08:49

回复 嘿嘿大人:好吧。。。。。

嘿嘿大人 2016-2-26 11:14:37

回复 飘落的共和国旗:嘿嘿

问题来自: 形参和实参
有以下程序:
#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。