局部变量和全局变量
C语言中变量按其作用域分,可分为局部变量和全局变量,具体的解释为:
局部变量(内部变量):在定义它的函数内有效,但是函数返回后失效;
全局变量(外部变量):在所有源文件内均有效。在同源文件的函数中使用使用全局变量,需要将全局变量提前声明;同时在不包含全局变量定义的不同源文件需要用extern关键字再次声明。
关于C语言全局变量和局部变量,还有几个注意点:
如果在该函数内定义了一个与之前定义的全局变量同名的变量,那么该同名局部变量就会在函数内部屏蔽全局变量的影响。即当局部变量与全局变量同名时,在局部变量的作用范围之内,全局变量不起作用。局部变量优先原则;
全局变量是有默认值的(引用类型的变量默认值都是null,基本类型的变量默认值则不一样,int型变量默认值是0),但是局部变量没有默认值;
全局变量可以在函数外定义并初始化,但不能进行赋值操作。这是什么意思呢?我们看一下:
此时程序运行通过,程序中a为全局变量,在函数外进行定义并初始化。