expression assignment-operator expression
assignment-operator : one of
= *= /= %= += –= <<= >>= &= ^= |=
备注
赋值运算符在左侧操作的指定的对象存储一个值。 有两种赋值操作:简单的赋值,其中第二个操作数的值存储在第一个操作数指定的对象;复合赋值,包括算术,移位,或按位操作存储之前进行的结果。 下表中除了=运算符,所有的赋值运算符是复合赋值运算符。
赋值运算符
运算符 |
含义 |
---|---|
= |
将第二个操作数的值存储到第一个运算符指定的对象(简单赋值)。 |
*= |
第一个操作数的值乘的第二个操作数的值,结果存储在由第一个操作数指定的对象。 |
/= |
第一个操作数的值除以第二个操作数的值,结果存储在由第一个操作数指定的对象。 |
%= |
第一个操作数的值模的第二个操作数的值,结果存储在由第一个操作数指定的对象。 |
+= |
第一个操作数的值加的第二个操作数的值,结果存储在由第一个操作数指定的对象。 |
–= |
第一个操作数的值减的第二个操作数的值,结果存储在由第一个操作数指定的对象。 |
<<= |
第一个操作数的值左移第二个操作数对象的值指定的位数;将结果存储在第一个操作线程指定的对象。 |
>>= |
第一个操作数的值右移第二个操作数对象的值指定的位数;将结果存储在第一个操作线程指定的对象。 |
&= |
第一个操作数和第二个操作数相与;将结果存储在第一个操作线程指定的对象。 |
^= |
第一个操作数和第二个操作数相异或;将结果存储在第一个操作线程指定的对象。 |
|= |
第一个操作数和第二个操作数相或;将结果存储在第一个操作线程指定的对象。 |
运算符关键字
三个复合赋值运算符具有文本等效。 它们是:
运算符 |
等效项 |
---|---|
&= |
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;
}