for(i=0;i++<10;)
{
printf("%d\n",i);
}
为什么打印 1 到 10?
我知道后增量发生在循环之后,那么为什么它不显示 0?为什么显示为 10?
最佳答案
让我们标记循环的元素:
for(/* 1 */ i=0; /* 2 */ i++<10; /* 4 */)
{
/* 3 */ printf("%d\n",i);
}
事情是这样发生的:
-
i
初始化为0
; i++
的结果与10
进行比较;作为此表达式的副作用,i
增加1
;i
的更新值被打印出来;- 如果此处有表达式,则会对其求值。
重复步骤 2 到 4,直到 i++ < 10
评估结果为 false。
关于C 编程增量和减量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928243/