在这之前,有一个C知识点要回顾一下:那就是,在C语言中,每一个变量和函数都有两个属性,它们分别是”数据类型“和”存储类别“,提这个是因为很多时候往往只知道”数据类型“这个属性而把”存储类别“这个重要的属性给忽略了,是否?下面,我以问答的形式以及根据个人理解总结一下全局变量,有出错的地方希望大家能指出,谢谢!
第一:什么是全局变量?
答:简单的说,就是在函数之外定义的变量即为全局变量(也称外部变量和全程变量)
第二:全局变量的有效范围?
答:全局变量的有效范围为从定义该变量的位置开始到本源文件结束,由此可知全局变量可以为在它有效范围中的函数所共用
第三:全局变量的存储类别?
答:全局变量全部存在放静态存储区中,在程序开始执行时会给全局变量分配固定的存储空间,直到程序执行完毕才释放
第四:定义全局变量时不赋初值的话,变量的值是什么?
答:对大多编译器来说,定义全局变量时不赋初值的话,编译时系统会自动赋初值0
第五:全局变量的”存储类别“默认情况下是?
答:在定义全局变量时,如果不指明“存储类别”的话,默认的存储类别是extern的,但是,一般情况下都省略不写,如果写了extern呢,情况会怎么样?答案就是,不同编译器有不同的结果,有的没警告,有的会提示警告。如下是在Visual C++6.0下的截图,对比后就知道,加上“extern