int f() {static int i=0; int s=1; s+=i;i++; return s; } void main() {int i,a=0; for(i=0;i<5;a++)

a+=f();printf(&quot;%d&quot;,a)};此题的结果是多少?为什么?
2024-12-02 12:24:43
推荐回答(3个)
回答1:

#include
int f()
{static
int i=0;
int s=1;
s+=i;
i++;
return s;
}
void main()
{int i,a=0;
for(i=0;i<5;i++)
a+=f();
printf("%d",a);
}

for(i=0;i<5;i++)此题结果15,如果是a++的话,死循环,呵呵

static是静态存储类型,i一旦定义将一直到程序结束才释放,所以值为1 2 3 4 5,相加后得到15

回答2:

运行结果,a=15。
在函数int f()中,static变量i,多次调用时,不会清零!

回答3:

没结果,死循环。