在C语言中,全局变量的存储类别是?

2020-06-30 科技 276阅读

全局变量的存储类别是静态存储区。

变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

由下图可以看出a、b、x、y 都是在函数外部定义的外部变量,都是全局变量。但x,y 定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。 a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。

全局变量是使用相同的内存块在整个类中存储一个值全局变量extern与static,extern在其他源程序中也可以使用;static只能在本程序中使用。

扩展资料:

数据区可以分为静态数据区(全局数据区)和动态数据区,后者又可分为堆区和栈区。之所以这样划分,是因为它们存放的数据和对应的管理方法不同。

静态数据区、栈区和堆区的存储空间分别遵循3种不同的规则:静态存储分配、栈式存储分配和堆式存储分配。后两种分配方式皆称为“动态存储分配”,因为这两种方式中存储空间并不是在编译的时候静态分配好的,而是在运行时才进行的。 

某些编程语言,如早期的FORTRAN语言及COBOL语言等,其存储分配是完全静态的,程序的数据对象与其存储的绑定是在编译期间进行的,称为静态语言。

而对于另一些语言,所有数据对象与其存储的绑定只能发生在运行期间,此类语言称为动态语言,如Lisp、ML、Perl等。多数语言(如C/C++、Java、Pascal等)采取的存储分配策略是介于二者之间的。

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

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com