Int y = 0
Int x = 5
y = x++
のようなことをすることと比較して
Int y = 0
Int x = 5
y = ++x
特に、ポストインクリメントの位置が一般的に出力にどのように影響するかを尋ねています
Int y = 0
Int x = 5
y = x++
のようなことをすることと比較して
Int y = 0
Int x = 5
y = ++x
特に、ポストインクリメントの位置が一般的に出力にどのように影響するかを尋ねています
前置/後置演算子が式または関数の評価の一部である場合、評価前 (前置) または評価後 (後置) のいずれかで、変数が変更される順序が決定されます。
この最初のケースでは、がインクリメントy
される前に割り当てられます。x
int y = 0;
int x = 5;
y = x++;
この 2 番目のケースでx
は、 が最初にインクリメントされ、次にy
が割り当てられます。
int y = 0;
int x = 5;
y = ++x;
注意: 方程式の両側の配列インデックスで使用すると、動作が undefined になる可能性があります。
x++ は、操作後に x をインクリメントします。
Int y = 0 Int x = 5 y = x++
Y は 5 に等しく、x は 6 に等しく設定されます。
Int y = 0 Int x = 5 y = ++x
Y は 6 に等しく、X も 6 に等しくなります。
最初のケースでは、y = x++、x は後置インクリメントされます。つまり、x の値が y に割り当てられた後、x の値が増加します。
y = 5 および x = 6。
2 番目のケースでは、y = ++x であり、x は事前にインクリメントされます。x の値が y に割り当てられる前に値が増加します。
y = 6 および x = 6
演算子が変数の前にある場合、操作を実行してから結果を返します (独自の演算子を作成する場合)。
int x = 1 ;
int y = x++ ; // y = 1, x = 2
int z = ++x ; // x = 3, z = 3
一時的なプログラムと出力を使用して、物事がどのように機能するかを確認することをお勧めします。もちろん、良い本が一番です ;)
pre-increment (++X): X の値が割り当てられる前にインクリメントされることを意味します。 あなたの例では、Xが最初にインクリメントされ(5 + 1)、次にYに割り当てられるため、Yの値は6になります。 post-increment (X++): X の値が割り当てられた後にインクリメントされることを意味します。 あなたの例では、Y に割り当てられた後に X がインクリメントされるため、Y の値は 5 になります。 これらを次のように比較できます。 ++X = インプレース増分 X++ = 増分は、Y が現在の値 (5) に設定された後、X (X=Temp) に割り当てられる一時的な場所 (Temp=5+1) で発生します。 Y = X++ は次のように表すことができます。 > 温度 = X+1 > Y = X > X = 温度