运算符优先级:
优先级 | 类别 | 运算符 |
1 | 基本 | (x) x.y f(x) a[x] x++ x-- |
2 | 单目 | + - ! ~ ++x --x |
3 | 乘法与除法 | * / % |
4 | 加法与减法 | +- |
5 | 移位运算 | << >> |
6 | 关系运算 | < > <= >= |
7 | 条件等 | == != |
8 | 位逻辑与 | & |
9 | 位逻辑异或 | ^ |
10 | 位逻辑或 | | |
11 | 条件与 | && |
12 | 条件或 | || |
13 | 条件 | ?: |
14 | 赋值 | = |
运算符顺序:
运算符 | 结合性 |
[ ] . ( ) (方法调用) | 从左到右 |
! ~ ++ -- +(一元运算) -(一元运算) | 从右到左 |
* / % | 从左到右 |
+ - | 从左到右 |
<< >> >>> | 从左到右 |
< <= > >= instanceof | 从左到右 |
== != | 从左到右 |
& | 从左到右 |
^ | 从左到右 |
| | 从左到右 |
&& | 从左到右 |
|| | 从左到右 |
?: | 从右到左 |
= | 从右到左 |
运算符总结:
相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是、、。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后计算。
运算符 | 名称或含义 | 使用形式 | 说明 |
后置++ | 后置自增运算符 | 变量名++ | |
后置-- | 后置自减运算符 | 变量名-- | |
[ ] | 数组下标 | 数组名[整型表达式] | |
( ) | 圆括号 | (表达式)/函数名(形参表) | |
. | 成员选择(对象) | 对象.成员名 | |
-> | 成员选择(指针) | 对象指针->成员名 | |
- | 负号运算符 | -表达式 | 单目运算符 |
(类型) | 强制类型转换 | (数据类型)表达式 | |
前置++ | 前置自增运算符 | ++变量名 | 单目运算符 |
前置-- | 前置自减运算符 | --变量名 | 单目运算符 |
* | 取值运算符 | *指针表达式 | 单目运算符 |
& | 取地址运算符 | &左值表达式 | 单目运算符 |
! | 逻辑非运算符 | !表达式 | 单目运算符 |
~ | 按位取反运算符 | ~表达式 | 单目运算符 |
sizeof | 长度运算符 | sizeof 表达式/sizeof(类型) | |
* | 乘 | 表达式*表达式 | 双目运算符 |
/ | 除 | 表达式/表达式 | 双目运算符 |
% | 余数(取摸) | 整型表达式%整型表达式 | 双目运算符 |
+ | 加 | 表达式+表达式 | 双目运算符 |
- | 减 | 表达式-表达式 | 双目运算符 |
<< | 左移 | 表达式<<表达式 | 双目运算符 |
>> | 右移 | 表达式>>表达式 | 双目运算符 |
> | 大于 | 表达式>表达式 | 双目运算符 |
>= | 大于等于 | 表达式>=表达式 | 双目运算符 |
< | 小于 | 表达式<表达式 | 双目运算符 |
<= | 小于等于 | 表达式<=表达式 | 双目运算符 |
== | 等于 | 表达式==表达式 | 双目运算符 |
!= | 不等于 | 表达式!= 表达式 | 双目运算符 |
& | 按位与 | 整型表达式&整型表达式 | 双目运算符 |
^ | 按位异或 | 整型表达式^整型表达式 | 双目运算符 |
| | 按位或 | 整型表达式|整型表达式 | 双目运算符 |
&& | 逻辑与 | 表达式&&表达式 | 双目运算符 |
|| | 逻辑或 | 表达式||表达式 | 双目运算符 |
?: | 条件运算符 | 表达式1? 表达式2: 表达式3 | 三目运算符 |
= | 赋值运算符 | 变量=表达式 | |
/= | 除后赋值 | 表达式/=表达式 | |
*= | 乘后赋值 | 表达式*=表达式 | |
%= | 取模后赋值 | 表达式%=表达式 | |
+= | 加后赋值 | 表达式+=表达式 | |
-= | 减后赋值 | 表达式-=表达式 | |
<<= | 左移后赋值 | 变量<<=表达式 | |
>>= | 右移后赋值 | 变量>>=表达式 | |
&= | 按位与后赋值 | 变量&=表达式 | |
^= | 按位异或后赋值 | 变量^=表达式 | |
|= | 按位或后赋值 | 变量|=表达式 | |
, | 逗号运算符 | 表达式,表达式,… |