什么是全局变量?
在所有函数外部定义的变量称为全局变量,它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。例如:
int a, b; //全局变量
void test1(){
}
float c,d; //全局变量
int test2(){
}
从以上代码可以看出a,b,c,d都为全局变量。但是c,d定义在函数test1后边,所以c,d,对于test是无效的,只对test2有效。而a,b对于test1和test2都有效。
什么是局部变量?
定义在函数内部的变量称为局部变量,它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。
int test3(int a)
{
int b=1;
int c=2;
return a+b+c
}
从以上代码可以看出,b,c只在函数内有效。
局部变量和全局变量优先级问题
int a=100
int main()
{
int a=10;
printf("a=%d\n",a);
return 0;
}
以上代码的输出结果为10;即局部变量优先级高