指派運算子
expression assignment-operator expression
assignment-operator : one of
= *= /= %= += –= <<= >>= &= ^= |=
備註
指派運算子來儲存左方運算元所指定的物件值。 有兩種指派運算子:簡單指派,第二個運算元的值儲存在第一個運算元所指定的物件;另一則為複合指派,算術、移位或位元運算在儲存結果之前執行。 下表中所有指派運算子除了 = 運算子都是複合指派運算子。
指派運算子
運算子 |
意義 |
---|---|
= |
將第二個運算元的值儲存在第一個運算元所指定的物件 (簡單指派)。 |
*= |
將第一個運算元的值以第二個運算元的值;將結果儲存在第一個運算元所指定的物件。 |
/= |
將第一個運算元的值以第二個運算元的值分割;將結果儲存在第一個運算元所指定的物件。 |
%= |
將第一個運算元以第二個運算元的值取餘數;將結果儲存在第一個運算元所指定的物件。 |
+= |
將第二個運算元的值加至第一個運算元;將結果儲存在第一個運算元所指定的物件。 |
–= |
將第一個運算元的值減掉第二個運算元的值;將結果儲存在第一個運算元所指定的物件。 |
<<= |
將第一個運算元的值往左移位由第二個運算元的值所指定的數量;將結果儲存在第一個運算元所指定的物件。 |
>>= |
將第一個運算元的值往右移位由第二個運算元的值所指定的數量;將結果儲存在第一個運算元所指定的物件。 |
&= |
取得第一和第二個運算元 AND 位元運算子的結果;將結果儲存在第一個運算元所指定的物件。 |
^= |
取得第一和第二個運算元 exclusinve OR 位元運算子的結果;將結果儲存在第一個運算元所指定的物件。 |
|= |
取得第一和第二個運算元 inclusinve OR 位元運算子的結果;將結果儲存在第一個運算元所指定的物件。 |
運算子關鍵字
三個複合指派運算子有文字對等用法。 這些視窗是:
運算子 |
對等用法 |
---|---|
&= |
and_eq |
|= |
or_eq |
^= |
xor_eq |
有兩種方法可以存取在程式中的這些運算子關鍵字:包含標頭檔 iso646.h或以 /Za 編譯 (停用語言擴充功能) 編譯器選項。
範例
// expre_Assignment_Operators.cpp
// compile with: /EHsc
// Demonstrate assignment operators
#include <iostream>
using namespace std;
int main() {
int a = 3, b = 6, c = 10, d = 0xAAAA, e = 0x5555;
a += b; // a is 9
b %= a; // b is 6
c >>= 1; // c is 5
d |= e; // Bitwise--d is 0xFFFF
cout << "a = 3, b = 6, c = 10, d = 0xAAAA, e = 0x5555" << endl
<< "a += b yields " << a << endl
<< "b %= a yields " << b << endl
<< "c >>= 1 yields " << c << endl
<< "d |= e yields " << hex << d << endl;
}