全局变量作用域

在一个
C
语言源程序文件中所定义的全局变量,其作用域为:
A) 所在文件的全部范围
B) 所在程序的全部范围
C) 所在函数的全部范围
D) 由具体定义位置和extern 说明来决定范围
答案上选的C 不过为什么
百度定义是从定义变量的位置到本程序文件结束

选择B。

全局变量在程序的全部范围内都有效。

所在函数的全部范围是函数内定时的static变量。

按正常情况来说,静态全局变量的作用域从定义的地方到本文件的结束,而前面的extern int a声明究竟对应哪个,就看编译器如何来识别了。如果同一个源文件中,只有一个主函数,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即它不起作用。

扩展资料:

1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。

2,使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。

3,对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。

4,当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。

参考资料来源:百度百科-全局变量

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-20
应该选择B

全局变量在程序的全部范围内都有效。

所在函数的全部范围是函数内定时的static变量。本回答被提问者采纳
第2个回答  2018-02-10
全局变量的作用域是从声明处到文件的结束。所以选择D)
相似回答