【发布时间】:2015-06-17 06:04:37
【问题描述】:
请解释一下为什么最后一个 printf 的值是 11? 我真的不明白为什么会这样。 当 a = 10 时,条件不满足,为什么这个值变成了 11? 检查条件后立即增加?
代码:
int main(void) {
int a = 0;
while(a++ < 10){
printf("%d ", a);
}
printf("\n%d ", a);
return 0;
}
输出:
1 2 3 4 5 6 7 8 9 10
11
【问题讨论】:
-
为什么
a=10不应该增加a?你了解后增量的工作原理吗? -
@BlueMoon 我认为你的第二个问题的答案很明显,这反过来又回答了第一个问题。
-
现在是的,谢谢大家的回答,对我来说,即使条件不满足,这个值也会增加,这一点并不明显。
-
@Misiek777 因此,通常建议不要编写像
while(a++ < 10)这样的代码,因为它可能会造成混淆/不清楚,或者至少会让开发人员停下来。
标签: c while-loop post-increment