2024-04-24 09:16:17
#include"stdio.h"
int f(int a)
{int b=0;
static int c=3;
b++; c++;
return a+b+c;
}
main()
{int a=2,i;
for(i=10;i<13;i++)
printf("%4d",f(a));
}
运行程序后,输出 7 8 9
在每次调用f()函数时,b会每次都赋初值为0,然后再加1;而c是“静态变量”,初始化赋值为3,只进行一次,第二次调用f()函数时c的值是4,第三次调用f()函数时c的值是5。
for(i=10;i<13;i++) printf("%4d",f(a));}
这个循环,共循环3次。由于
int b=0;
是局部变量,每次调用时,都被赋初值0;
而static int c=3;定义的c,则是“静态变量”赋初值的操作,只进行一次,调用结束后的值会被保留到下一次调用,继续有效。所以,在循环中,被调用3次f(a);得到3次的返回值是不一样的。程序运行后,会输出: 7 8 9
分别是2+1+4,2+1+5,2+1+6的结果。
2024-04-24 10:47:51
2024-04-24 05:48:46
2024-04-24 15:48:58
2024-04-24 07:55:17