结果是5
#include"stdio.h"
int f(int x)
{static int s=0;
int i;
for(i=1;i<= x;i++)
s=s+i;
return s;
}
int main()
{
int n;
n=f(1)+f(2);
prinf("%d\n",n);
return 0;
}
x是函数的参数,在main函数里会传进来啊
先是f(1)
f函数静态变量s=0,循环从1到1,执行一次,所以s=s+i=0+1=1
使得f(1) = 1
然后是f(2)
f函数静态变量s=1,循环从1到2,执行两次,所以s=1+1=2,然后s=2+2=4
使得f(2) = 4
最终n=f(1)+f(2)=1+4=5
x是参数,由函数外面传进来,分别是1,2.
f(1):
i=1,s=1
f(2)
i=1, s=2 //s是静态变量,上次计算的值依旧保存着
i=2, s=4
n=1+4=5