赋值运算符

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

请参见

参考

使用二元运算符的表达式

C++ 运算符

C++ 运算符优先级和关联性

赋值运算符的结果

简单赋值 (C++)

复合赋值

C 赋值运算符