一道C程序题:下面程序的输出结果是

来源:百度知道 编辑:UC知道 时间:2024/06/21 22:49:29
#include "stdio.h"
int f()
{
static int i=0;
int s=1;
s+=i;i++;
return s;
}
main()
{
int i,a=0;
for(i=0;i<5;i++)
a+=f();
printf("%d\n",a);
}
偶是菜鸟,大侠帮帮忙哈!解释得越详细越好!

#include "stdio.h"
int f()
{
static int i=0; //注意是static静态变量 变量更改后驻留在内存中
int s=1;
s+=i;i++;
return s;
}
main()
{
int i,a=0;
for(i=0;i<5;i++) //执行5次循环
a+=f(); //执行该累加 0+1+2+3+4+5=15
printf("%d\n",a);
}

i是STATIC类型,会保持值

5次循环,i=0,1,2,3,4
s=1,1+1,1+2,1+3,1+4
a=1+2+3+4+5=15