static可以修饰局部变量也可以修饰全局变量。能够改变局部变量的生命周期。
![](https://i-blog.csdnimg.cn/blog_migrate/d0d4a470f0641f35a53c5f34a3d041e7.png)
从上图可以看出,用static修饰,能够讲局部变量变成了全局变量,增加了生命周期。
例子1:
#include<stdio.h>
void test()
{
int d=2;
d++;
printf("%d",d);
}
int main()
{
int a=2;
int c=0;
while (a<10)
{
test();
a++;
}
return 0;
}
运行结果:
PS E:\c_code> & .\"hello.exe"
33333333
例子2:
#include<stdio.h>
void test()
{
static int d=2;
d++;
printf("%d",d);
}
int main()
{
int a=2;
int c=0;
while (a<10)
{
test();
a++;
}
return 0;
}
输出结果:
PS E:\c_code> & .\"hello.exe"
345678910
static修饰变量增加了生命周期。
static修饰全局变量/函数,使得全局变量/函数只能在自己所在的原文件内部使用,其他原文件不能使用。