定义在函数内部的变量叫做局部变量,定义在函数外部的变量叫做全局变量。局部变量只能在该函数内部才能使用,而全局变量可以被整个C语言中所有的函数所公用,他的作用范围是从定义的位置开始一直到整个C语言程序结束。所以根据定义位置的不同,全局变量的作用域范围不同。
在一个函数中即可以使用本函数的局部变量,也可以使用有效的全局变量。
#include<stdio.h>
int a = 10; //全局变量
int main(void)
{
int a = 5; // 定义一个同名的局部变量
printf("a = %d\n", a);
return 0;
}
所以定义变量的时候局部变量和全局变量最好不要重名。此外,如果局部变量未初始化,那么系统会自动将“-585993460”放进去,但是如果全局变量未初始化,那么系统会自动将其初始化为0,他们的这个区别主要源自于他们存储空间的不同,局部变量是栈中分配的,而全局变量是在静态存储区中分配的。只要是在静态存储区中年分配的,如果未初始化则系统都会自动将其初始化为0,下面我们来验证一下。
#include<stdio.h>
int a; // 全局变量
int add(int n);
int main(void)
{
int b;
printf("b = %d\n", b);
printf("a = %d\n", a);
add(b);
return 0;
}
int add