全局变量,c语言定义一个全局变量
一、各作用领域变量中什么是全局变量
全局变量也叫外部变量是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。
如果外部变量不在文件的开头定义,其有效的作用范围,只限定于定义处到文件尾部,如果在定义点之前的函数,想引用该外部变量,这应该在引用之前用关键字extern对该外部变量作“外部变量声明”。表示该变量是一个已经定义的外部变量。有了此声明,就可以从声明处起,合法的使用该外部变量。
二、局部变量和全局变量的区别是什么
具体来说,全局变量和局部变量的区别如下:
1.作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等
2.内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区
3.生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
4.使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量
三、静态变量和全局变量的区别
全局变量声明之前加上static,就是静态全局变量。全局变量和静态全局变量都是静态存储的;在存储上无区别。区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用!还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以再其他源文件初始化!!这样说楼主明白了吗?