C言語の代入演算子とインクリメント(++)・デクリメント(--)を解説。
= は「等しい」ではないa = b は 「bの値をaに代入する」 という意味です。数学の等号ではありません。int a, b; a = 5; // aに5を代入 b = a + 3; // bに (aの値+3)=8 を代入 a = a + 1; // aに (aの値+1)=6 を代入 (a=5 だった値に+1)
a = a + 1 は数学的にはあり得ませんが、C言語では「現在のa + 1 を新しいaに代入」という意味で、値が1増えます。| 記法 | 意味 | 例 | 結果(a=10の場合) |
|---|---|---|---|
a += b | a = a + b | a += 3 | a = 13 |
a -= b | a = a - b | a -= 4 | a = 6 |
a *= b | a = a * b | a *= 2 | a = 20 |
a /= b | a = a / b | a /= 3 | a = 3 |
a %= b | a = a % b | a %= 3 | a = 1 |
sum += num; のような書き方はC/C++/Java/Pythonなどで共通で使われます。int i = 5; i++; // i = i + 1 と同じ。iは6に i--; // i = i - 1 と同じ。iは5に戻る ++i; // これも i=i+1 (前置) for (int i = 0; i < 10; i++) { ... } // forで最頻出
この講座の理解度をチェックしましょう!
a += 3 は a = a + 3 と同じです。5 + 3 = 8 になります。
a++ は後置インクリメントなので、まず a の現在の値(5)が b に代入され、その後 a が 6 になります。
++a は前置インクリメントなので、まず a が 6 になり、その値が b に代入されます。