1.作用域:
变量在哪里使用,哪里就是它的作用域。
代码段(1):
#include<stdio.h>
int main()
{
printf("haha\n");
int a = 10;
printf("a = %d", a);
return 0;
}
变量a的作用域在 “printf("a = %d", a);这条语句。
代码段(2):
#include<stdio.h>
int main()
{
printf("haha\n");
printf("a = %d", a);
{
int a = 10;
}
return 0;
}
在大括号里面定义的变量a的作用域是它自己所在的大括号的范围。
大括号里面的变量只能在大括号里面使用,上面代码的printf输出函数在大括号外面,所以此代码无法运行。
代码段(3):
//这是正确的写法
#include<stdio.h>
int main()
{
printf("haha\n");
{
int a = 10;
printf("a = %d", a);
}
return 0;
}
2.局部变量的作用域:
就是变量所在的局部范围。
3.全局变量的作用域:
整个工程。
执行性的代码必须放在大括号里面。
变量的创建可以放在大括号外面。
4.生命周期
(1)变量的生命周期:
变量的创建和销毁之间的时间段。
代码段(4):
#include<stdio.h>
int main()
{
{
int a = 10;
printf("%d\n", a);
}
return 0;
}
局部变量a进入进入局部范围创建之后,它的生命周期开始。
变量a在大括号外无法使用也就没必要存在了,所以a的生命周期在出大括号的一瞬间就结束了,a变量也就销毁了。
(2)局部变量的生命周期:
进入局部范围什么开始,出局部范围生命结束。
(3)全局变量的生命周期:
整个程序的生命周期。