不涉及其他操作时的前缀与后缀增量?

问题描述:

++i; 

不涉及其他操作时的前缀与后缀增量?

i++; 

是否使用前缀增量或使用后缀递增的使在给定的两个语句(一个差异点是没有其他操作,参与在那里,除了增加变量)?

+4

无任何责任。 –

+0

现在为什么我得到一个downvote? – Solace

+0

@Solace你呢? :) – Meinkraft

不,它只是增加我的价值一,就是这样。

最终结果在两种情况下都完全相同。 ++ i和i ++的使用在这方面没有任何区别。但是,可能会有性能差异;尽管这些几乎可以忽略不计。

基本上,++我保证和i ++一样快;然而,我不能保证和++一样快。所以,如果你不需要中间值[例如当++ i或i ++是一个单独的语句],那么更喜欢++ i。大多数常见的编译器可能会优化这种差异,但规范明确了不同的行为和保证。换句话说,我可能会做一个额外的不必要的步骤。

// The compiler turns i++ into the following int temp = i; i = i + 1; return temp;

对战:

// The compiler turns ++i into the following i = i + 1; return i;

有关此的详细参考,请参阅http://fairwaytech.com/2012/03/prefix-vs-postfix-increment-and-decrement-operators-in-c/