【发布时间】:2014-10-21 17:13:55
【问题描述】:
这是一个非常简单的 C 程序:
int main()
{
int i = 0;
while(i++ < 10)
printf("%d\n", i);
return 0;
}
结果是:
1
2
3
4
5
6
7
8
9
10
为什么0 不是第一个打印的数字?
如果我用++i 替换i++,我会得到这个:
1
2
3
4
5
6
7
8
9
对于i++ 和++i,第一个数字是1。
我希望看到 0 在 while 循环 while() 中进行后期增量。
谢谢。
【问题讨论】:
-
i++ 在执行时间上是递增的,当然是一个。
-
不管使用什么运算符,你打印
i修改后,你怎么能看到0!? -
while(i++ < 10) /*i is incremented here*/ printf("%d\n", i); -
C 程序员出于某种原因喜欢对 SO 投反对票,这就像 C 不是有史以来最令人困惑的语言。
标签: c while-loop post-increment pre-increment