赋值运算符:=, *=、/=、%=、+=, - =, <<=, >>=, &=, ^=,并|=

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

请参见

参考

与二元运算符的表达式

C++运算符

运算符优先级和结合性

赋值运算符的结果

简单的赋值(C++)

复合赋值

C赋值运算符