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;
}