运算符的优先级
C++/C语言的运算符有数十个,运算符的优先级与结合律如表4-1所示。注意一元运算符 + - * 的优先级高于对应的二元运算符。
优先级
运算符
结合律
从
高
到
低
排
列
( ) [ ] -> .
从左至右
! ~ ++ -- (类型) sizeof
+ - * &
从右至左
* / %
从左至右
+ -
从左至右
<< >>
从左至右
< <= > >=
从左至右
== !=
从左至右
&
从左至右
^
从左至右
|
从左至右
&&
从左至右
||
从右至左
?:
从右至左
= += -= *= /= %= &= ^=
|= <<= >>=
从左至右
表4-1 运算符的优先级与结合律
l 【规则
4-1-1
】如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。
由于将表4-1熟记是比较困难的,为了防止产生歧义并提高可读性,应当用括号确定表达式的操作顺序。例如:
word = (high << 8) | low
if ((a | b) && (a & c))