当不涉及其他操作时,前缀与后缀递增?

Prefix vs. Postfix increment when no other operation is involved?

++i;

对比

i++;

在给定的两个语句中使用前缀增量或使用后缀增量是否有所不同(关键是那里没有涉及其他操作,除了增加变量)?

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

两种情况下的最终结果完全相同。使用 ++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/