C++ 中的複合賦值運算符(也稱組合賦值運算符)是對“操作 + 賦值”這一常見模式的簡寫,使代碼更簡潔、可讀性更強。
|
運算符
|
含義
|
等價形式
|
説明
|
|
|
加後賦值
|
|
將右操作數加到左操作數上,並將結果存回左操作數
|
|
|
減後賦值
|
|
從左操作數減去右操作數,結果存回左操作數
|
|
|
乘後賦值
|
|
左操作數與右操作數相乘,結果存回左操作數
|
|
|
除後賦值
|
|
左操作數除以右操作數,結果存回左操作數(注意:整數除法會截斷)
|
|
|
模(取餘)後賦值
|
|
計算左操作數對右操作數取模(求餘),結果存回左操作數(僅適用於整數類型)
|
示例:
#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;
}