C++ 中的复合赋值运算符
c++server side programmingprogramming
复合赋值运算符以 e1 op= e2 的形式指定,其中 e1 是可修改的左值,不是 const 类型,e2 是以下 − 之一
- 算术类型
- 指针,如果 op 是 + 或 –
e1 op= e2 形式表现为 e1 = e1 op e2,但 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 的常量表达式。如果左操作数是整数类型,则右操作数不能是指针类型。