C语言求助

fun(int a)
{int b=0;static int c=3;
b++;c++;
return(a+b+c);
}
main()
{ int i,a=5;
for(i=0;i<3;i++)printf("%d%d",fun(a));
printf("\n");
}

求输入的运行结果及详细过程。
10 11 12值是怎么来的,是几+几+几,能说详细点么,b++ ,c++那个值增加了,那个没增加

送分了啊。,快回答

程序有问题,正确程序:
#include <stdio.h>
fun(int a)
{int b=0;
static int c=3;
b++;c++;
return(a+b+c);
}
main()
{ int i,a=5;
for(i=0;i<3;i++)
printf("%d\n",fun(a));
}
结果:10,11,12
静态变量的值每次调用函数累加,因此得出这个结果

c++累计,b++一直是1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-11
c是静态变量 所以加了返回主函数再次调用不变 b返回主函数以后再次调用函数 值就再次变为0了
第2个回答  2009-03-10
同意一楼意见,static是静态变量的意思,每次调用函数累加,不会再次被初始化。
相似回答