2.7.8 运算符优先级的问题

表 运算符的优先级

优先级 运算符 结合性
1 () 括号运算符 由左至右
2 !、+(正号)、-(负号) 一元运算符 由左至右
2 ~ 位逻辑运算符 由右至左
2 ++、– 递增与递减运算符 由右至左
3 *、/、% 算术运算符 由左至右
4 +、- 算术运算符 由左至右
5 «、» 位左移、右移运算符 由左至右
6 >、>=、<、<= 关系运算符 由左至右
7 ==、!= 关系运算符 由左至右
8 & 位运算符、逻辑运算符 由左至右
9 ^ 位运算符、逻辑运算符 由左至右
10 | 位运算符、逻辑运算符 由左至右
11 && 逻辑运算符 由左至右
12 || 逻辑运算符 由左至右
13 ? : 条件运算符 由右至左
14 =、+=、-=、*=、/=、%= 赋值运算符、扩展运算符 由右至左

老鸟建议

1.大家不需要去刻意的记这些优先级,表达式里面优先使用小括号来组织!!

2.逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或)。如:

3.a||b&&c的运算结果是:a||(b&&c),而不是(a||b)&&c