赋值运算符:=, *=、/=、%=、+=, - =, <<=, >>=, &=, ^=,并|=
expression assignment-operator expression
assignment-operator : one of
= *= /= %= += –= <<= >>= &= ^= |=
备注
赋值运算符在左侧操作数指定的对象存储一个值。 有两种分配操作:简单的赋值,第二个操作数对象的值在第一个操作数指定的对象存储和 " 分配,则算术、 shift 或操作。存储结果之前按位运算。 所有赋值运算符在除的下表中 = 运算符是复合赋值运算符。
赋值运算符
运算符 |
含义 |
---|---|
= |
存储第二个操作数对象的值在第一个操作数指定的对象 (简单的赋值)。 |
*= |
用第一个操作数的值与第二个操作数对象的值;将结果存储在第一个操作数指定的对象。 |
/= |
由另一个操作对象的值将第一个操作数的值;将结果存储在第一个操作数指定的对象。 |
%= |
接受第二个操作对象的值指定的第一个操作数的模数;将结果存储在第一个操作数指定的对象。 |
+= |
添加第二个操作数对象的值赋给第一个操作数的值;将结果存储在第一个操作数指定的对象。 |
–= |
从第一个操作数的值减去第二个操作数对象的值;将结果存储在第一个操作数指定的对象。 |
<<= |
转换第一个操作数的值将第二个操作数对象的值指定的位数;将结果存储在第一个操作数指定的对象。 |
>>= |
转换位的数目由另一个操作对象的值指定第一个操作数权限的值;将结果存储在第一个操作数指定的对象。 |
&= |
获取按位与第一个和第二个操作对象;将结果存储在第一个操作数指定的对象。 |
^= |
按位 " 异或获取第一个和第二个操作对象;将结果存储在第一个操作数指定的对象。 |
|= |
获取按位或包含第一个和第二个操作对象;将结果存储在第一个操作数指定的对象。 |
运算符关键字
三个复合赋值运算符具有文本等效。 它们是:
运算符 |
等效项 |
---|---|
&= |
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;
}