0
++i;

对比

i++;

使用前缀增量或使用后缀增量是否会对给定的两个语句产生影响(重点是那里不涉及其他操作,除了递增变量)?

4

2 回答 2

3

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

基本上,++i 保证和 i++ 一样快;但是,不能保证 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/

于 2016-05-16T02:56:11.663 回答
1

不,它只是将 i 的值加一,仅此而已。

于 2016-05-16T02:44:50.563 回答