为什么答案是2 6 42 3?i在循环体里面的变化是什么样的?一直不太理解,当i为2的时候带入循环体得到i为6,那不应该退出了嘛?有人可以帮忙解释一下吗?非常感谢!!


为什么答案是2 6 42 3?i在循环体里面的变化是什么样的?一直不太理解,当i为2的时候带入循环体得到i为6,那不应该退出了嘛?有人可以帮忙解释一下吗?非常感谢!!


因为
static int i = 1;
i+=Square(i);
printf("%d,",i);
这三句里面的i是static int i的i值。我们给这段代码改一下你就明白了:
static int s_i = 1;
s_i+=Square(s_i);
printf("%d,",s_i);