对于C中的循环混淆

jac*_*476 2 c integer loops for-loop

这是一个我不完全理解的练习测试中的问题.

对于代码片段

int i = 0, j = 0, k = 0;
for (i=-1; i<=10; ++i){ 
    j = i; ++k; 
}
Run Code Online (Sandbox Code Playgroud)

我被要求在执行代码后找到变量的值.

答案是:

 i = 11 j = 10 k = 12
Run Code Online (Sandbox Code Playgroud)

我不明白怎么样,有人可以帮忙吗?

Jim*_*ter 5

理解i循环之后的值非常简单,比这里的其他答案简单得多.循环条件是i<=10......为了使循环终止,该条件必须为false.显然,这个值的i假值是11.

的值j在循环的结束是以前的值i,这是如图10所示,和的值k是次循环执行的数目,为1(为-1)+ 1(0)+ 10(用于1至10)= 12.