0
++i;

対。

i++;

前置インクリメントの使用または後置インクリメントの使用は、指定された 2 つのステートメントに違いをもたらしますか?

4

2 に答える 2

3

最終結果は、両方のシナリオでまったく同じです。++i と i++ を使用しても、その点で違いはありません。ただし、パフォーマンスに違いがある場合があります。ただし、これらはほとんど無視できます。

基本的に、++i は i++ と同じくらい高速であることが保証されています。ただし、i++ は ++i ほど高速であるとは限りません。したがって、[++i または i++ が単一のステートメントである場合など] 中間値が必要ない場合は、++i を優先します。ほとんどの一般的なコンパイラはこの違いを最適化するかもしれませんが、仕様は異なる動作と保証について明確です。つまり、i++ は不要なステップを 1 つ追加する可能性があります。

// 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 の値を 1 だけインクリメントするだけです。

于 2016-05-16T02:44:50.563 に答える