先摘录谭浩强《C程序设计》对运算符优先级的两点说明:
1. 同一优先级的运算符,运算次序由结合方向来决定。
例如:
a) * 与 / 具有相同的优先级别,其结合方向为自左向右,因此3 * 5 / 4的运算次序是先乘后除;
b) - 和 ++ 为同一优先级,结合方向为自右向左,因此 - i ++ 相当于 - ( i ++ )。
2. 从上述表中可以大致归纳出各类运算符优先级:
初等运行符->单目运算符->算术运算符->关系运算符->逻辑运算符->条件运算符->赋值运算符->逗号运算符
经过分析总结,编成顺口溜6句以助记忆:
初等单目一二级, // 初等运算符和单目运算符分别是第1、2优先级
乘除求余加减移, // 这句里面的运算符全归为算术运算符,移表示移位
关系等于不等于, // 关系运算符(< <= > >=)
按位与来异或或, // 位运算符优先级顺序: & -> ^ -> |
逻辑与或条件弱, // 逻辑运算符优先级顺序: && -> ||,后面跟着优先级比较低(弱)的条件运算符
赋值逗号一点破。 // 赋值,逗号最低
C:\Users\Administrator\Desktop\1[img]C:\Users\Administrator\Desktop\2C:\Users\Administrator\Desktop\3[/img] |
|