运算符

运算符优先级:

 

优先级 类别 运算符
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 从左到右
== != 从左到右
& 从左到右
^ 从左到右
| 从左到右
&& 从左到右
|| 从左到右
?: 从右到左
= 从右到左

 

运算符总结:

相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符条件运算符赋值运算符函数

基本的优先级须要记住:spa

指针最优,单目运算优于双目运算。如正负号。指针

先乘除(模),后加减。对象

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.ci

逻辑运算最后计算。get

运算符 名称或含义 使用形式 说明
后置++ 后置自增运算符 变量名++  
后置-- 后置自减运算符 变量名--  
[ ] 数组下标 数组名[整型表达式]  
( ) 圆括号 (表达式)/函数名(形参表)  
. 成员选择(对象) 对象.成员名  
-> 成员选择(指针) 对象指针->成员名  
- 负号运算符 -表达式 单目运算符
(类型) 强制类型转换 (数据类型)表达式  
前置++ 前置自增运算符 ++变量名 单目运算符
前置-- 前置自减运算符 --变量名 单目运算符
* 取值运算符 *指针表达式 单目运算符
& 取地址运算符 &左值表达式 单目运算符
! 逻辑非运算符 !表达式 单目运算符
~ 按位取反运算符 ~表达式 单目运算符
sizeof 长度运算符 sizeof 表达式/sizeof(类型)  
* 表达式*表达式 双目运算符
/ 表达式/表达式 双目运算符
% 余数(取摸) 整型表达式%整型表达式 双目运算符
+ 表达式+表达式 双目运算符
- 表达式-表达式 双目运算符
<< 左移 表达式<<表达式 双目运算符
>> 右移 表达式>>表达式 双目运算符
> 大于 表达式>表达式 双目运算符
>= 大于等于 表达式>=表达式 双目运算符
< 小于 表达式<表达式 双目运算符
<= 小于等于 表达式<=表达式 双目运算符
== 等于 表达式==表达式 双目运算符
!= 不等于 表达式!= 表达式 双目运算符
& 按位与 整型表达式&整型表达式 双目运算符
^ 按位异或 整型表达式^整型表达式 双目运算符
| 按位或 整型表达式|整型表达式 双目运算符
&& 逻辑与 表达式&&表达式 双目运算符
|| 逻辑或 表达式||表达式 双目运算符
?: 条件运算符 表达式1? 表达式2: 表达式3 三目运算符
= 赋值运算符 变量=表达式  
/= 除后赋值 表达式/=表达式  
*= 乘后赋值 表达式*=表达式  
%= 取模后赋值 表达式%=表达式  
+= 加后赋值 表达式+=表达式  
-= 减后赋值 表达式-=表达式  
<<= 左移后赋值 变量<<=表达式  
>>= 右移后赋值 变量>>=表达式  
&= 按位与后赋值 变量&=表达式  
^= 按位异或后赋值 变量^=表达式  
|= 按位或后赋值 变量|=表达式  
逗号运算符 表达式,表达式,…
相关文章
相关标签/搜索