C 言語では、i++ と ++i の違いは何ですか?
C言語では、i++と++iはどちらもインクリメント演算子であり、変数iの値を1増やして、増やす前の値を返します。
ただし、重要な違いがあります。i++はiに1を足してからiの値を返しますが、++iはiの値に1を足してから、増加した値を返します。
具体的違いの例を次に示します。
int i = 5;
int x, y;
x = i++; // x = 5, i = 6
y = ++i; // y = 7, i = 7
最初の例では x = i++ ここで x には i の初期値である 5 が代入され、その後 i の値が 1 増えて 6 になります。
2番目の例では、y = ++iで、iの値は1増加して7になり、増加した値がyに代入されます。
つまり、 i++と++iの違いは、返り値のタイミングなので、 i++は初期値を返した後インクリメントし、 ++iはインクリメントさせた後インクリメント後の値を返す