
上QQ阅读APP看书,第一时间看更新
5.10 复合赋值运算符
我们在前面已经看到了,多个表达式之间可以形成一条复合表达式。有些表达式(例如涉及加、减、乘、除的算术表达式)经常会跟赋值表达式一起使用,以达到计算并赋值的效果,由于这种用法很常见,因此C语言专门提供了一套运算符让我们简化此类操作。这些运算符都是先在它左边的操作数与它右边的操作数之间执行某种运算,然后把运算结果赋回给左边的那个变量。
复合赋值运算符的用法是variable operator=expression。
最常用的复合赋值运算符是+=运算符,用来实现相加并赋值的效果。例如:

这行代码改用+=运算符来写,就变成:

整套复合赋值运算符共有10个:
□+=将变量与某值相加,并把结果赋回给该变量
□-=将变量与某值相减,并把结果赋回给该变量
□*=将变量与某值相乘,并把结果赋回给该变量
□/=将变量与某值相除,并把结果赋回给该变量
□%=取变量与某值相除的余数,并把结果赋回给该变量
□<<=将变量按位左移,并把结果赋回给该变量
□>>=将变量按位右移,并把结果赋回给该变量
□&=对变量与某值执行按位与(按位和)操作,并把结果赋回给该变量
□^=对变量与某值执行按位异或操作,并把结果赋回给该变量
□|=对变量与某值执行按位或操作,并把结果赋回给该变量
这些运算符能够让算式更加简洁,如果用得恰当,会让代码更加清晰。