你好:
f(int a)//定义f函数,参数为a
{
auto b=0; 定义变量b,赋初值0,auto类型b值在离开函数后释放,进入函数时赋值
static c=3; 定义静态变量c,初值3,注意,static类型c变量的值只第一次被赋值,之后会保存变化后的值。
b=b+1;
c=c+1;
return(a+b+c);//返回a+b+c 可以看到,任何时候返回值b值都是0 + 1 = 1;而c值第一次等于3+1 = 4,每调用一次函数后C值+1,因此和函数调用次数相关。
}
int main()
{
int a=2,i;
for(i=0;i<3;i++)
printf("%3d",f(a)); //这里调用了3次f函数,a一直等于2,上面函数说明b一直等于1,c值第一次调用后为4,之后每调用一次+1;因此3次输出为7, 8, 9
return 0;
}
附参考说明:
C语言中提供了存储说明符auto、register、extern、static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。在函数内部定义的变量成为局部变量。
温馨提示:答案为网友推荐,仅供参考