全局变量是存放在静态存储区,而且全局变量定义在函数之外,作用域是整个程序。
局部变量是存放在栈区的,定义在函数之内,作用域是函数内,出函数自动销毁。
#include<stdio.h>
int c=10; //全局变量
int main(){
int a=8;//局部变量
printf("%d",c)// c是全局变量,等于10
printf("%d",a)// a是局部变量 等于8
return 0;
}
当 全局变量名 和 局部变量 冲突 时,该听谁的呢?
#include<stdio.h>
int a=20;//全局变量
int main()
{
int a=10;//局部变量
printf("%d",a); //局部变量优先,a等于10;
return 0;
}
很明显,当全局变量和局部变量冲突时,局部变量优先,拥有管辖权;而全局变量则是会被忽略。