局部变量与全局变量的一些概念
概念一
在{}(代码块)之外的变量-全局变量
在{}(代码块)之内的变量-局部变量
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int a = 10;//全局变量
int main()
{
int a = 20;//局部变量
printf("%d\n", a);
return 0;
}
概念二
还是刚才那串代码
如下列所示
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int a = 10;//全局变量
int main()
{
int a = 20;//局部变量
printf("%d\n", a);
return 0;
}
输出结果
输出的结果是局部变量里面的值
所以可得出一个结论:当局部变量和全局变量名字相同时,局部变量优先。
因此在写代码的时候全局变量和局部变量最好不要相同,虽然不会报错,但容易产生bug。
概念三
局部变量不能在局部之外使用
如下
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
{
int a = 20;
printf("%d\n", a);
}
return 0;
}
可以正常输出结果
但在局部外使用时就会报错
如下
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
{
int a = 20;
}
printf("%d\n", a);
return 0;
}
输出结果