可能重复:
后增量和前增量概念?
任何人都可以明确解释前缀增量与后缀增量有何不同?
也有人可以解释为什么这个输出6?
i=1;
cout << ++i + ++i;
还有为什么这给出了 4
i = 1;
cout << ++i + i++;
以及为什么这会产生真实的
i = 0;
cout << (i++ || i++)
可能重复:
后增量和前增量概念?
任何人都可以明确解释前缀增量与后缀增量有何不同?
也有人可以解释为什么这个输出6?
i=1;
cout << ++i + ++i;
还有为什么这给出了 4
i = 1;
cout << ++i + i++;
以及为什么这会产生真实的
i = 0;
cout << (i++ || i++)
前缀++i
和后缀i++
运算符会影响语句的计算顺序。使用前缀++i
, 的值i
增加,这就是使用的。但是使用 suffixi++
后,使用 的原始值i
,然后对该行之后的任何内容递增。
1) 很明显,“++i”首先增加变量,然后“i++”增加。
2)不太明显,将中缀递增/递减与同一变量上的其他操作混合的复杂表达式可能会引入未定义的行为:
我同意:线程后增量和前增量概念?解决了这个问题。