代入演算子: =、 *=、/=、 %=、 +=、 - =、 <<=、 >>=、 &=、 ^=、 |=
expression assignment-operator expression
assignment-operator : one of
= *= /= %= += –= <<= >>= &= ^= |=
解説
代入演算子の左側のオペランドで指定されたオブジェクトに値を格納します。2 種類の代入演算があります : 2 番目のオペランドの値が 1 番目のオペランドで指定されたオブジェクトに格納されていると操作Shiftビットごとの演算の結果が格納される前に実行されると簡単な複合代入します。を除く次の表のすべての代入演算子 = 演算子は複合代入演算子です。
代入演算子
[演算子] |
説明 |
---|---|
= |
1 番目のオペランド (簡単な代入) で指定されたオブジェクトを2 番目のオペランドの値を格納します。 |
*= |
2 番目のオペランドの値を 1 番目のオペランドの値を大きくします。; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
/= |
2 番目のオペランドの値を 1 番目のオペランドの値を分割 ; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
%= |
2 番目のオペランドの値で指定された1 番目のオペランドの残りの部分は避けてください ; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
+= |
1 番目のオペランドの値に 2 番目のオペランドの値を追加します。; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
–= |
1 番目のオペランドの値から 2 番目のオペランドの値を減算します ; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
<<= |
1 番目のオペランドの値が保持されていました 2 番目のオペランドの値で指定されたビット数分だけ右にシフトします ; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
>>= |
ビット数が 2 番目のオペランドの値で指定された 1 番目のオペランドの右側の値をシフト。; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
&= |
ビットごとの AND 1 番目と 2 番目のオペランドを取得します ; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
^= |
1 番目と 2 番目のオペランドのビットごとに排他的 OR を取得します ; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
|= |
包括のまたは 1 番目と 2 番目のオペランドのビットごとに取得します ; 1 番目のオペランドで指定されたオブジェクトに格納します。 |
演算子のキーワード
複合代入演算子の 3 に相当するテキストにできます。各要素を次に示します。
[演算子] |
等しいことを表します。 |
---|---|
&= |
and_eq |
|= |
or_eq |
^= |
xor_eq |
プログラムのこれらの演算子のキーワードの表示方法は 2 種類あります : ヘッダー ファイル 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;
}