語法書 / AA 競程語法書 上冊 / 第四單元 / i++、++i、i--、--i

4.7 i++、++i、i--、--i

這些運算子很常見,但它們在不同位置有不同的行為。初學時容易搞混。

單獨使用時(i++、++i 都一樣):

  • i++ 相當於 i += 1
  • ++i 也相當於 i += 1
  • i----i 則相當於 i -= 1

在運算式中使用時(有區別):

  • ++i(前置遞增):先加 1,再傳回新的值
  • i++(後置遞增):先傳回舊的值,再加 1
  • --ii-- 類似

範例程式碼

範例:前置 vs 後置(在運算式中)

#include<iostream>
using namespace std;
int main() {
    int x = 5;
    int y = ++x;        // 先讓 x = 6,再把 6 指派給 y
    cout << x << " " << y << "\n";  // 輸出:6 6

    int a = 5;
    int b = a++;        // 先把 5 指派給 b,再讓 a = 6
    cout << a << " " << b << "\n";  // 輸出:6 5

    return 0;
}

執行結果:

6 6
6 5