作用域包括全局变量
和局部变量
。
全局变量:创建的变量的在整个项目中都起作用。
局部变量: 创建的变量只在局部起作用。
全局变量是创建在括号外面。 局部变量创建在括号内部。
#include <stdio.h>
int a = 0;//全局变量的a
void num()
{
printf("%d\n", a);//这里引入的是全局变量的a,打印的结果是0
},
int main()
{
int a = 10;//局部变量中的a
int x = 0;
num();
printf("%d\n", a);//这里引入的是局部变量的a,打印的结果是10
return 0;
}
需要注意的是当全局变量和局部变量相同时,以局部变量为主。
生命周期:变量从创建到销毁的一个周期
局部变量的生命周期是从进入进入作用域开始,到退出作用域为止
。
全局变量的生命周期则是整个程序的生命周期
。
void num()
{
static int i = 0;//创建静态变量i,每一次进入i的值都会保存
i++;
printf("%d\n", i);//此时打印的结果是1 2 3 4 5 6
}
int main()
{
int i = 0;
for (i = 0; i <= 5; i++)
{
num();
}
return 0;
}
此时加入static
所以每次进入函数i的值不会销毁,最后打印的值为1 2 3 4 5 6
,如果不加static
则将会打印1 1 1 1 1 1
。
此外还有申明外部变量extern
,例如在变量a
前面加上extern
可以引入不同源文件的变量a
。