第1个回答 2008-08-01
//程序应该是这样的吧?
int ff(int n)
{ static int f=1;
f=f*n;
return f;
}
main()
{ int i;
for(i=1;i<=5;i++)
printf("%d\n",ff(i));
}
如果这样,那么最后的结果是120,static局部静态变量只能初始化一次,也就是第二到五次的时候static int f=1; 不起作用。你可以把f想象成一个全局变量,这样你就能明白了。
第2个回答 2008-08-01
由于f是静态变量,全局可用
第一次i=1,f=1 打印1
第二次i=2,f=2 打印2
第三次i=3,f=3*2=6 打印6
第四次i=4,f=4*6=24 打印24
第五次i=5,f=5*24=120 打印120本回答被提问者采纳