有关c语言static的小问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:47:36
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
return 0;
}
请问加不加static,分别有什么输出结果

8281886 正解,但是解释稍有不准确。static操作符后面生命的变量其生命周期是全局的,而且其定义语句即static int f = 1;只运行一次,因此之后再调用ff()时,该语句不运行。所以f的值保留上次计算所得。因此是1,2,6,24,120

没加static结果为1.2.3.4.5加了结果是1.2.6.24.120
因为static为静态,可以保存,不加就不能保存。F就得回1,加了
f=f*n,就是可以f为上一次的值,没的话就读一次为1一次。

楼上正确哦