我正在审阅带有以下代码段的代码,以尽量减少可重现的示例。因此,这里的代码运行迭代以初始化数组done
,如下所示:
#include <stdio.h>
int i,j;
N=10;
int done[500];
void main() {
done[0]=done[N]=1;
for(i=0;i<N+1;done[i++]=0){
printf("Done val %d iteration %d\n",done[i],i);
}
}
我担心的事情是我初始化了的值。done[0]=done[1]=1
但是,当我运行初始化循环时,索引0和10的值保持不变。我想了解如何done[i++]
实际评估语法?
for
循环的增量步骤在执行循环主体之后进行。它等效于以下代码:
i = 0;
while (i < N+1) {
printf("Done val %d iteration %d\n",done[i],i);
done[i++] = 0;
}
如您所见,它done[i]
在更改值之前先打印的值。因此它将打印原始值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句