C语言第二题为什么

2024-12-29 09:56:01
推荐回答(1个)
回答1:

static int i 创造了一个静态局部变量,就是相当於全局变量不会被再运行时重置,也没有和for loop裏的i冲突。

首先for loop循环五次,每次a加上一个fun() return的s。

然後看fun(),

第一次,i = 0,s = 1;然後s = s+i = 1+0 = 1,i = 1,return了s = 1.

第二次,i还是等於之前的1,s又重新定义变成了1,所以s = s+i = 1+1 = 2,i = 2,return了s = 2.

所以五次for loop 的结果应该是1 + 2 + 3 + 4 + 5 = 15.

我自己做的所以不知道对不对,如果有理解错误还行多多指教,谢谢!