全局变量是存放在静态存储区,而且全局变量定义在函数之外,作用域是整个程序。
局部变量是存放在栈区的,定义在函数之内,作用域是函数内,出函数自动销毁。
#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; }
很明显,当全局变量和局部变量冲突时,局部变量优先,拥有管辖权;而全局变量则是会被忽略。