什么是全局变量

请通俗一点... 请通俗一点 展开
 我来答
秒懂百科
2020-02-06 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阮初柳靖盈
2020-03-14 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:730万
展开全部
全局变量也称为外部变量,它是在函数外部定义的变量。
它不属于哪一个函数,它属于一个源程序文件。其作用域是从定义该变量的位置开始至源文件结束。解释
在函数中使用全局变量,一般应作全局变量说明。
只有在函数内经过说明的全局变量才能使用。
但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。例如:int
a,b;
/*外部变量*/void
f1()
/*函数f1*/{……}float
x,y;
/*外部变量*/int
fz()
/*函数f2*/{……}main()
/*主函数*/{int
maomi();……}/*全局变量x,y作用域 全局变量a,b作用域*/从上例可以看出a、b、x、y
都是在函数外部定义的外部变量,都是全局变量。但x,y
定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。
a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。全局变量是使用相同的内存块在整个类中存储一个值.全局变量extern与staticextern在其他源程序中也可以使用;static只能在本程序中使用。全局变量的存在主要有以下一些原因:1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不成为什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。2,使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。3,对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。4,当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。5,还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使其名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。如下例所示声明全局变量:Global
y
As
String
面向对象语言中的使用
在现代的面向对象语言如Java,C++,C#,Ruby中,由于变量都是封装在类里面的,对别的类不可见,所以已经几乎完全抛弃了全局变量的概念。然而,可以通过把一个类定义为public
static,把类成员变量也定义为public
static,使该变量在内存中占用固定、唯一的一块空间,来实现全局变量的功能。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式