复合赋值运算符以e1op=e2的形式指定,其中e1是非const类型的可修改l值,e2是以下值之一-
算术类型
指针(如果op为+或–
e1op=e2形式表现为e1=e1ope2,但是e1仅被评估一次。以下是C++中的复合赋值运算符-经营者
| 描述
| *=
| 将第一个操作数的值乘以第二个操作数的值;将结果存储在第一个操作数指定的对象中。
|
/=
| 将第一个操作数的值除以第二个操作数的值;将结果存储在第一个操作数指定的对象中。
|
%=
| 取由第二个操作数的值指定的第一个操作数的模数;将结果存储在第一个操作数指定的对象中。
|
+=
| 将第二个操作数的值添加到第一个操作数的值;将结果存储在第一个操作数指定的对象中。
|
–=
| 从第一个操作数的值中减去第二个操作数的值;将结果存储在第一个操作数指定的对象中。
|
<<=
| 将第一个操作数的值左移第二个操作数的值指定的位数;将结果存储在第一个操作数指定的对象中。
|
>>=
| 将第一个操作数的值右移第二个操作数的值指定的位数;将结果存储在第一个操作数指定的对象中。
|
&=
| 获取第一和第二操作数的按位与;将结果存储在第一个操作数指定的对象中。
|
^=
| 获取第一和第二操作数的按位异或;将结果存储在第一个操作数指定的对象中。
|
|=
| 获取第一和第二操作数的按位或运算;将结果存储在第一个操作数指定的对象中。
|
示例
我们来看一个使用其中一些运算符的示例-
#include<iostream>
using namespace std;
int main() {
int a = 3, b = 2;
a += b;
cout << a << endl;
a -= b;
cout << a << endl;
a *= b;
cout << a << endl;
a /= b;
cout << a << endl;
return 0;
}
输出结果
这将给出输出-
5
3
6
3
请注意,将化合物分配给枚举类型会生成错误消息。如果左操作数是指针类型,则右操作数必须是指针类型,或者它必须是一个等于0的常量表达式。如果左操作数是整数类型,则右操作数不能是指针类型。