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