C++ 中的複合賦值運算符(也稱組合賦值運算符)是對“操作 + 賦值”這一常見模式的簡寫,使代碼更簡潔、可讀性更強。

運算符

含義

等價形式

説明

+=

加後賦值

a = a + b;

將右操作數加到左操作數上,並將結果存回左操作數

-=

減後賦值

a = a - b;

從左操作數減去右操作數,結果存回左操作數

*=

乘後賦值

a = a * b;

左操作數與右操作數相乘,結果存回左操作數

/=

除後賦值

a = a / b;

左操作數除以右操作數,結果存回左操作數(注意:整數除法會截斷)

%=

模(取餘)後賦值

a = a % b;

計算左操作數對右操作數取模(求餘),結果存回左操作數(僅適用於整數類型)

示例:

#include<iostream>
#include<array>
using namespace std;

int main() {
    int number = 0;
    // 下面三種寫法效果一致
    // number ++; // number = number + 1; // number += 1;
    number +=10;
    cout<< "+=number: " << number << endl;
    number -=8;
    cout<< "-=number: " << number << endl;
    number *=10;
    cout<< "*=number: " << number << endl;
    number /=2;
    cout<< "/=number: " << number << endl;
    number %=3;
    cout<< "%=number: " << number << endl;
    
    return 0;
}
xaye@orange:~/code/dev/16$ ./a.out 
+=number: 10
-=number: 2
*=number: 20
/=number: 10
%=number: 1

bool 類型補充

bool一般是真或者假,true or false 它還可以是一個值,0為false 非 0 為true

#include<iostream>
#include<array>
using namespace std;

int main() {
    // i 和 i > 0 哪個更好?可讀性,儘量使用 i > 0
    for (int i = 5; i; i--){
    cout << "C++ konws loops." << endl;
    }
    cout << "C++ konws when to stop." << endl;
    /*
    C++ konws loops.
    C++ konws loops.
    C++ konws loops.
    C++ konws loops.
    C++ konws loops.
    C++ konws when to stop.
    */
    return 0;
}

++ 和 --

#include<iostream>
#include<array>
using namespace std;

int main() {

    // ++
    int number = 0;
    number++;
    cout << "number = " << number << endl;

    // --
    number--;
    cout << "number = " << number << endl;

    // number++ 後++ , ++number 前++
    ++number;
    cout << "number = " << number << endl;

    // number-- 後-- , --number 前--
    --number;
    cout << "number = " << number << endl;

    // 前++ 和 ++ 有什麼區別? 後++
    // 一般情況下沒有什麼區別,只是編譯器再拆分語句生成彙編代碼的順序是不一樣的
    /*int number1 = 10;
    int number2 = 20;
    //int number3 = number1 + number2;
    //number2 = number2 + 1
    int number3 = number1 + number2++;
    cout << "number2 = " << number2 << endl;
    cout << "number3 = " << number3 << endl;*/
    // 打印
    // number2 = 21
    // number3 = 30

    // 前++ 和 ++ 有什麼區別? 前++
    int number1 = 10;
    int number2 = 20;
    //int number3 = number1 + number2;
    //number2 = number2 + 1
    int number3 = number1 + ++number2;
    cout << "number2 = " << number2 << endl;
    cout << "number3 = " << number3 << endl;
    // 打印
    // number2 = 21
    // number3 = 31

    // 下面兩種寫法輸出結果是一樣的,但是編譯是有區別的?
    // for (int i = 5; i > 0; i--)
    for (int i = 5; i > 0; --i) {
    cout << "C++ konws loops." << endl;
    }
    cout << "C++ konws when to stop." << endl;

    return 0;
}