11-组合赋值运算符
5.1.9 组合赋值运算符
程序清单5.5使用了下面的表达式来更新循环计数:
i = i + by
C++有一种合并了加法和赋值操作的运算符,能够更简洁地完成这种任务:
i += by
+=运算符将两个操作数相加,并将结果赋给左边的操作数。这意味着左边的操作数必须能够被赋值,如变量、数组元素、结构成员或通过对指针解除引用来标识的数据:
int k = 5;
k += 3; // ok, k set to 8
int *pa = new int[10]; // pa points to pa[0]
pa[4] = 12;
pa[4] += 6; // ok, pa[4] set to 18
*(pa + 4) += 7; // ok, pa[4] set to 25
pa += 2; // ok, pa points to the former pa[2]
34 += 10; // quite wrong
每个算术运算符都有其对应的组合赋值运算符,表5.1对它们进行了总结。其中每个运算符的工作方式都和+=相似。因此,下面的语句将k与10相乘,再将结果赋给k:
k *= 10;
| 操 作 符 | 作用(L为左操作数,R为右操作数) | | :----- | :----- | :----- | :----- | | += | 将L+R赋给L | | -= | 将L-R赋给L | | = | 将LR赋给L | | /= | 将L/R赋给L | | %= | 将L%R赋给L |