【发布时间】:2012-10-03 11:39:06
【问题描述】:
谁能明确解释前缀增量与后缀增量有何不同?
也有人可以解释为什么这个输出为 6 吗?
i=1;
cout << ++i + ++i;
还有为什么这会给出 4
i = 1;
cout << ++i + i++;
以及为什么这会产生 true
i = 0;
cout << (i++ || i++)
【问题讨论】:
-
案例 1 我认为应该是 5 而不是 6。
-
我认为您可能会受益于阅读更多有关 c/c++ 的背景知识。您指定的将多个增量应用于同一变量的代码是未指定的行为。这意味着编译器可以做它想做的事。这并不总是您所期望的。
-
为什么要编写需要挠头才能弄清楚发生了什么的代码?只会给你自己或其他程序员带来未来的问题。代码应该是可读的。
-
由于这个问题涉及序列点和未定义的行为,我认为这是一个更好的副本:stackoverflow.com/questions/949433/…