请高手帮忙解释一下这个程序的运行过程
#include <stdio.h>
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;i<n;i++) sum+=x[i];
return sum;
}
main()
{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4); printf("%d\n",s);
}
参考答案:#include <stdio.h>
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;i<n;i++) sum+=x[i];
return sum;
}
main()
{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4); printf("%d\n",s);
}
/****************/
fun(a,5)=15 关键是sum是静态形的 所以下一次调用还是最后的值15
fun(a,4)=45
s=fun(a,5)+fun(b,4)=60