c语言外部变量和全局变量 C语言中,全局变量和外部变量有什么区别?
浏览量:1147
时间:2021-03-17 05:40:29
作者:admin
C语言中,全局变量和外部变量有什么区别?
全局变量也称为外部变量,它是在函数外部定义的变量。
它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。有时需要在其他文件中使用extern来声明外部变量,以扩展外部变量的作用域。也可用static声明外部变量,使该变量不能被其他文件引用。有时候他们是一样的,只有稍微一点的区别而已,不用太过于区分的。C语言全局变量和局部变量会冲突吗?为什么?
C语言中,看你怎么安放全局变量和局部变量了。如果你把全局变量和局部变量放在一个代码文件内,那么就是冲突的。这么说不明显,我写个C程序代码你就知道了,如下图所示:
在这段C程序中,我在主函数main之外定义了一个全局变量para,并且给了一个初始值1。在C程序主函数main里面,我又定义了一个变量para,跟主函数之外的那个para是同名。
这里,C程序主函数外面的那个变量生命周期在整个代码中有效,而主函数的这个变量只在主函数内有效。
这也就是说,在C程序主函数里操作para变量,实际上操作的是主函数中的变量,外面的para变量值还是1。在这段C程序中,main函数中的para变量把外面的变量para给遮住了。
所以,同学们在学习C语言时,一定要注意这个全局变量被局部同名变量遮住的问题,同时也要了解变量的作用域和生命周期。
c语言外部变量和全局变量 外部变量和全局变量一样吗 全局变量和局部变量的关系
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。