C++中的複合賦值運算子


複合賦值運算子的形式為 e1 op= e2,其中 e1 是一個可修改的左值,其型別不是 const 型別,而 e2 是以下之一:

  • 算術型別
  • 如果 op 是 + 或 –,則為指標

e1 op= e2 的形式的行為與 e1 = e1 op e2 相同,但 e1 只計算一次。

以下是 C++ 中的複合賦值運算子:

運算子
描述
*=
將第一個運算元的值乘以第二個運算元的值;將結果儲存在第一個運算元指定的物件中。
/=
將第一個運算元的值除以第二個運算元的值;將結果儲存在第一個運算元指定的物件中。
%=
取第一個運算元模第二個運算元的值;將結果儲存在第一個運算元指定的物件中。
+=
將第二個運算元的值新增到第一個運算元的值中;將結果儲存在第一個運算元指定的物件中。
–=
從第一個運算元的值中減去第二個運算元的值;將結果儲存在第一個運算元指定的物件中。
<<=
將第一個運算元的值左移第二個運算元的值指定的位數;將結果儲存在第一個運算元指定的物件中。
>>=
將第一個運算元的值右移第二個運算元的值指定的位數;將結果儲存在第一個運算元指定的物件中。
&=
獲取第一和第二運算元的按位與;將結果儲存在第一個運算元指定的物件中。
^=
獲取第一和第二運算元的按位異或;將結果儲存在第一個運算元指定的物件中。
|=
獲取第一和第二運算元的按位或;將結果儲存在第一個運算元指定的物件中。

示例

讓我們看一個使用其中一些運算子的示例:

#include<iostream>
using namespace std;

int main() {
   int a = 3, b = 2;

   a += b;
   cout << a << endl;

   a -= b;
   cout << a << endl;

   a *= b;
   cout << a << endl;

   a /= b;
   cout << a << endl;

   return 0;
}

輸出

這將給出以下輸出:

5
3
6
3

請注意,對列舉型別的複合賦值會生成錯誤訊息。如果左運算元是指標型別,則右運算元必須是指標型別,或者必須是計算結果為 0 的常量表達式。如果左運算元是整數型別,則右運算元不能是指標型別。

更新於:2020年2月11日

3K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告