用static声明局部变量
有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
#include <stdio.h>
#include <stdlib.h>
int f(int a)
{
auto b=0;
static c=3;//“静态局部变量”,用关键字static进行声明,不会重复赋初值
b=b+1;
c=c+1;
printf("auto:b=%d\t",b);
printf("static: c=%d\n",c);
return a+b+c;
}
int main()
{
int a=2,i;
for(i=0;i<3;i++)
{
printf("第%d次运行\n",i);
printf("%d\n",f(a));
}
//printf("Hello world!\n");
return 0;
}
/**
f(int a)
{auto b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
main()
{int a=2,i;
for(i=0;i<3;i++)
printf("%d ",f(a));
}
*/