C语言运算符详解
1. 复合赋值运算符
复合赋值运算符为每个已介绍的运算符都提供了一种复合赋值形式,如下所示:
- +=
- -=
- *=
- /=
- %=
- <<=
- >>=
- &=
- ^=
- |=
这里以 +=
运算符为例进行讨论,其他运算符的工作方式类似。 +=
运算符的使用方式如下:
a += expression;
它的含义是“将表达式的值加到变量 a
上”,等价于 a = a + expression
,但不同的是, +=
左边的操作数(这里是 a
)只被计算一次。需要注意括号的使用,它能确保表达式在加法运算之前被完全计算,即使表达式中包含优先级低于加法的运算符。
为什么要有两种方式来给变量添加值呢?K&R C语言的设计者认为,复合赋值运算符能让程序员编写更清晰的代码,并且编译器能够生成更紧凑的代码。虽然 a = a + 5