B79
附录C:运算符优先级与结合性
引入
章前总览 算表达式时:先比优先级;同级再看结合性(从左到右还是从右到左)。不必死记,用熟了自然记住;拿不准就加括号。
要点:
- 优先级:谁先算
- 结合性:同级怎么走
- 可读性:宁可多写括号
1 优先级示例
操作数两侧运算符优先级不同时,先做优先级高的。
乘法先于加法
a + b * c
// 先算 b * c,再与 a 相加
// 因为 * 优先级高于 +
一级里常碰到的高低关系(由高到低印象)
- 括号
()最高。 - 单目:
++--!-(负号)等较高。 - 乘除取余
* / %高于加减+ -。 - 关系
< <= > >=高于相等== !=。 - 逻辑与
&&高于逻辑或||。 - 赋值
=很低。 - 第8章提过:
a<b<c、i&3==0等“看起来顺口”的写法,往往被优先级坑到。
2 结合性示例
两侧运算符优先级相同时,按结合方向运算。
赋值是右结合
a = b = 5;
// 等效于 a = (b = 5);
// 先右边赋值,再把结果赋给左边
- 多数常用运算符是左结合(如
a-b-c→(a-b)-c)。 - 赋值是典型的右结合。
3 可读性:主动加括号
即便优先级相同,也可以加括号让人一眼看懂。
取某位数字
n / 10 % 10 // 合法:/ 与 % 同级、左结合
(n / 10) % 10 // 更好懂:先除再取余
- 优先级与结合性不靠死背,多写多对照书上的优先级表。
- 考试写题:宁可多括号,少歧义。
小结
三条注意事项:
1. 不用死记,用多了就熟
2. 同级也可加 () 提高可读性
3. 大部分左结合;赋值是右结合
✓
里程碑达成:
一级附录 A–C 到此学完;写题时 Dev-C++、格式化 I/O、表达式括号可随时回来查阅。