编程语言运算符优先级对照表优先级由高到低

Java / C / C++ 运算符优先级(由高到低)

优先级 运算符 说明
1(最高) () [] . -> :: 括号、数组下标、成员访问、指针/作用域访问
2 ! ~ +x -x ++ -- (类型) 一元运算、取反、自增自减、强制类型转换
3 * / % 乘、除、取模
4 + - 加、减
5 << >> >>> 移位运算
6 < <= > >= instanceof 关系比较(instanceof 仅 Java)
7 == != 相等比较
8 & 按位与
9 ^ 按位异或
10 | 按位或
11 && 逻辑与
12 || 逻辑或
13 ?: 三目条件运算
14(最低) = += -= *= /= %= ... 赋值及复合赋值

PHP 运算符优先级(由高到低)

优先级 运算符 说明
1(最高) ( ) [] 括号、数组下标
2 ++ -- ! 自增自减、逻辑非
3 ** 幂运算
4 * / % 乘、除、取模
5 + - 加、减
6 << >> 移位运算
7 < <= > >= 关系比较
8 == != === !== 相等(含严格相等)
9 & 按位与
10 ^ 按位异或
11 | 按位或
12 && 逻辑与
13 || 逻辑或
14 ?: 三目条件运算
15(最低) = += -= *= /= %= ... 赋值及复合赋值

Python 运算符优先级(由高到低)

优先级 运算符 说明
1(最高) ( ) [ ] 属性访问 括号、下标、属性访问
2 ** 幂运算
3 +x -x ~x 一元正负、按位取反
4 * / // % 乘、除、整除、取模
5 + - 加、减
6 << >> 移位运算
7 & 按位与
8 ^ 按位异或
9 | 按位或
10 == != < <= > >= is in 比较、身份、成员判断
11 not 逻辑非
12 and 逻辑与
13 or 逻辑或
14 x if c else y 条件表达式
15(最低) = += -= *= /= ... 赋值及复合赋值

运算符优先级对照表介绍

运算符优先级对照表介绍

运算符优先级决定表达式中多个运算符的计算先后顺序,优先级高的先执行,优先级相同的则按结合性(左结合或右结合)依次运算。

▪ 三大类语言的优先级整体结构相近:括号最高、算术居中、赋值最低;但细节存在差异,如 Python 的 ** 高于一元运算符。

▪ 逻辑与 and/&& 通常高于逻辑或 or/||,因此在判断中出现混合逻辑时常会得到不同的求值顺序。

▪ 建议编写复杂表达式时使用括号显式标明优先级,既能避免歧义,也提升代码可读性与可维护性。