以下程序的输出结果是( )。
{ 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);
}
i = 0,s = 1,s += i后,s = 1,i++后,i = 1。返回后,a = 0 + s = 0 + 1 = 1
i = 1,s = 1,s += i后,s = 2,i++后,i = 2。返回后,a = 1 + s = 1 + 2 = 3
i = 2,s = 1,s += i后,s = 3,i++后,i = 3。返回后,a = 3 + s = 3 + 3 = 6
i = 3,s = 1,s += i后,s = 4,i++后,i = 4。返回后,a = 6 + s = 7 + 4 = 10
i = 4,s = 1,s += i后,s = 5,i++后,i = 5。返回后,a = 10 + s = 10 + 5 = 15
注意到,在函数f()中,i是静态变量,s是自动变量。