C++语言程序设计

| 表3-9 赋值运算符

运算符 | 实例 | 等价于
= | n = 25 |
+ = | n += 25 | n = n + 25
- = | n -= 25 | n = n - 25
* = | n *= 25 | n = n * 25
/ = | n /= 25 | n = n / 25
% = | n %= 25 | n = n % 25
& = | n &= 0xF2F2 | n = n & 0xF2F2
| = | n |= 0xF2F2 | n = n | 0xF2F2
^ = | n ^= 0xF2F2 | n = n ^ 0xF2F2
<< = | n <<= 4 | n = n << 4
>> = | n >>= 4 | n = n >> 4

赋值运算符分为两种：一种是简单的最常用的=运算符；二是复合的赋值运算符，又称为带有运算的赋值运算符，也叫赋值缩写。
例如：i=i+j；可表示为 i+=j；这里+=是复合赋值运算符。
同样的共有10种这样的运算符，它们是：
+= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 求余赋值
&= 按位与赋值
| = 按位或赋值
^= 按位异或赋值
<<= 左移位赋值
>>= 右移位赋值
<> 当右操作数又是一个赋值表达式时，形成多重赋值表达式。例如：
i=j=0; //结果i、j的值都为0
注意：多重赋值表达式不能出现在变量说明中。例如：
int i=j=0;
是非法的。
例：有变量说明
int a=2,b;
指出下面表达式运算后a和b的结果。
b+=b=++a;
答：a为3，b为6。
<> 有时将赋值运算与比较运算结合在一起形成嵌入赋值。例如：
while ((ch=getchar())!='\n');
这条语句的含义是：等待用户按下回车键后程序向下执行。
需要注意的是： x *= y+8等价于x=x*(y+8)，不等价于 x = x*y+8。
同样：z &= y-x等价于z = z & (y-x)，而不等价于z = z &y -x。