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