例:#include<stdio.h>
void test()
{
int num=0;
num++; //方法体中是局部变量,进入作用域时开始,出作用域时结束
printf("%d\n",num);
}
int main()
{
int i=0;
for(;i<5;i++){
test();
}
return 0;
}
结果:1,1,1,1,1
void test()
{
static int num=0; // 被static修饰的变量为全局变量,并且num只被初始化一次。
num++;
printf("%d\n",num);
}
int main()
{
int i=0;
for(;i<5;i++){
test();
}
return 0;
}
结果:1,2,3,4,5
结论:(1)static更改该进程的生命周期。一但被static修饰该变量就为全局变量,但作用域在该函数有效。
(2)在函数中只初始化一次