運算子優先順序和結合性一覽表
優先順序
運算子
名稱或含義
使用形式
結合方向
說明
1
[]
陣列下標
陣列名[常量表達式]
左到右
()
圓括號
(表示式)函式名(形參表)
.
成員選擇(物件)
物件.成員名
->
成員選擇(指標)
物件指標->成員名
2
-
負號運算子
-表示式
右到左
單目運算子
(型別)
強制型別轉換
(資料型別)表示式
++
自增運算子
++變數名變數名++
--
自減運算子
--變數名變數名--
*
取值運算子
*指標變數
&
取地址運算子
&變數名
!
邏輯非運算子
!表示式
~
按位取反運算子
~表示式
sizeof
長度運算子
sizeof(表示式)
3
/
除
表示式 / 表示式
雙目運算子
乘
表示式*表示式
%
餘數(取模)
整型表示式%整型表示式
4
+
加
表示式+表示式
減
表示式-表示式
5
<<
左移
變數<<表示式
>>
右移
變數>>表示式
6
>
大於
表示式>表示式
>=
大於等於
表示式>=表示式
<
小於
表示式<表示式
<=
小於等於
表示式<=表示式
7
==
等於
表示式==表示式
!=
不等於
表示式!= 表示式
8
按位與
表示式&表示式
9
^
按位異或
表示式^表示式
10
|
按位或
表示式|表示式
11
&&
邏輯與
表示式&&表示式
12
||
邏輯或
表示式||表示式
13
?:
條件運算子
表示式1? 表示式2: 表示式3
三目運算子
14
=
賦值運算子
變數=表示式
/=
除後賦值
變數/=表示式
*=
乘後賦值
變數*=表示式
%=
取模後賦值
變數%=表示式
+=
加後賦值
變數+=表示式
-=
減後賦值
變數-=表示式
<<=
左移後賦值
變數<<=表示式
>>=
右移後賦值
變數>>=表示式
&=
按位與後賦值
變數&=表示式
^=
按位異或後賦值
變數^=表示式
|=
按位或後賦值
變數|=表示式
15
,
逗號運算子
表示式,表示式,…
運算子優先順序和結合性一覽表
優先順序
運算子
名稱或含義
使用形式
結合方向
說明
1
[]
陣列下標
陣列名[常量表達式]
左到右
()
圓括號
(表示式)函式名(形參表)
.
成員選擇(物件)
物件.成員名
->
成員選擇(指標)
物件指標->成員名
2
-
負號運算子
-表示式
右到左
單目運算子
(型別)
強制型別轉換
(資料型別)表示式
++
自增運算子
++變數名變數名++
單目運算子
--
自減運算子
--變數名變數名--
單目運算子
*
取值運算子
*指標變數
單目運算子
&
取地址運算子
&變數名
單目運算子
!
邏輯非運算子
!表示式
單目運算子
~
按位取反運算子
~表示式
單目運算子
sizeof
長度運算子
sizeof(表示式)
3
/
除
表示式 / 表示式
左到右
雙目運算子
*
乘
表示式*表示式
雙目運算子
%
餘數(取模)
整型表示式%整型表示式
雙目運算子
4
+
加
表示式+表示式
左到右
雙目運算子
-
減
表示式-表示式
雙目運算子
5
<<
左移
變數<<表示式
左到右
雙目運算子
>>
右移
變數>>表示式
雙目運算子
6
>
大於
表示式>表示式
左到右
雙目運算子
>=
大於等於
表示式>=表示式
雙目運算子
<
小於
表示式<表示式
雙目運算子
<=
小於等於
表示式<=表示式
雙目運算子
7
==
等於
表示式==表示式
左到右
雙目運算子
!=
不等於
表示式!= 表示式
雙目運算子
8
&
按位與
表示式&表示式
左到右
雙目運算子
9
^
按位異或
表示式^表示式
左到右
雙目運算子
10
|
按位或
表示式|表示式
左到右
雙目運算子
11
&&
邏輯與
表示式&&表示式
左到右
雙目運算子
12
||
邏輯或
表示式||表示式
左到右
雙目運算子
13
?:
條件運算子
表示式1? 表示式2: 表示式3
右到左
三目運算子
14
=
賦值運算子
變數=表示式
右到左
/=
除後賦值
變數/=表示式
*=
乘後賦值
變數*=表示式
%=
取模後賦值
變數%=表示式
+=
加後賦值
變數+=表示式
-=
減後賦值
變數-=表示式
<<=
左移後賦值
變數<<=表示式
>>=
右移後賦值
變數>>=表示式
&=
按位與後賦值
變數&=表示式
^=
按位異或後賦值
變數^=表示式
|=
按位或後賦值
變數|=表示式
15
,
逗號運算子
表示式,表示式,…
左到右