C語言運算符優先級

此優先級表來自www.slyar.com


C語言運算符優先級表
優先級
運算符
名稱或含義
使用形式
結合方向
說明
1
[]
數組下標
數組名[常量表達式]
從左到右

()
圓括號(表達式)/函數名(形參表)

.
成員選擇(對象)
對象.成員名
->
成員選擇(指針)
對象指針->成員名
2
-符號運算符
-表達式從右到左單目運算符
(類型)
強制類型轉換
(數據類型)表達式
++
自增運算符
++變量名/變量名++單目運算符
--
自減運算符
--變量名/變量名--單目運算符
*
取值運算符
*指針變量 單目運算符
&
取地址運算符
&變量名單目運算符

邏輯非運算符
!表達式單目運算符
~
按位取反運算符
~表達式單目運算符
sizeof
長度運算符
sizeof(表達式)
3
/

表達式/表達式從左到右雙目運算符
*

表達式*表達式雙目運算符
%
取模整型表達式/整型表達式雙目運算符
4
+

表達式+表達式從左到右雙目運算符
-

表達式-表達式雙目運算符
5
<<
左移
變量<<表達式從左到右
雙目運算符
>>
右移
變量>>表達式雙目運算符
6
>
大於
表達式>表達式從左到右
雙目運算符
>=
大於等於
表達式>=表達式雙目運算符
<
小於
表達式<表達式雙目運算符
<=
小於等於
表達式<=表達式雙目運算符
7
==
等於
表達式==表達式從左到右
雙目運算符
!=
不等於
表達式!=表達式雙目運算符
8
&
按位與
表達式&表達式從左到右雙目運算符
9
^
按位異或
表達式^表達式從左到右雙目運算符
10
|
按位或
表達式|表達式從左到右雙目運算符
11
&&
邏輯與
表達式&&表達式從左到右雙目運算符
12
||
邏輯或
表達式||表達式從左到右雙目運算符
13
?=
條件運算符
表達式1? 表達式2: 表達式3從右到左三目運算符
14
=
賦值運算符
變量=表達式從右到左
/=
除後賦值
變量/=表達式
*=
乘後賦值
變量+=表達式
%=
取模後賦值
變量%=表達式
+=
加後賦值
變量+=表達式
-=
減後賦值
變量-=表達式
<<=
左移後賦值
變量<<=表達式
>>=
右移後賦值
變量>>=表達式
&=
按位與後賦值
變量&=表達式
^=按位異或後賦值
變量^=表達式
|=按位或後賦值
變量|=表達式
15
,
逗號運算符
表達式,表達式,…從左到右從左向右順序運算


以下內容摘自《C陷阱與缺陷》

單目運算符的優先級高於雙目運算符

在雙目運算符中:

1.算術運算符優先級最高

2.移位運算符次之

3.關係運算符再次之

4.邏輯運算符更次之

重要的兩點:

1.邏輯運算符的優先級關係運算符

2.移位運算符優先級低於算數運算符,高於關係運算符

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章