1. 程式人生 > >C 運算子優先順序與記憶口訣

C 運算子優先順序與記憶口訣

運算子詳情表

優先順序

運算子

名稱或含義

使用形式

結合方向

說明

1

[]

陣列下標

陣列名[常量表達式]

左到右

()

圓括號

(表示式)/函式名(形參表)

.

成員選擇(物件)

物件.成員名

->

成員選擇(指標)

物件指標->成員名

2

-

負號運算子

-表示式

右到左

單目運算子

(型別)

強制型別轉換

(資料型別)表示式

++

自增運算子

++變數名/變數名++

單目運算子

--

自減運算子

--變數名/變數名--

單目運算子

*

取值運算子

*指標變數

單目運算子

&

取地址運算子

&變數名

單目運算子

!

邏輯非運算子

!表示式

單目運算子

~

按位取反運算子

~表示式

單目運算子

sizeof

長度運算子

sizeof(表示式)

3

/

表示式/表示式

左到右

雙目運算子

*

表示式*表示式

雙目運算子

%

餘數(取模)

整型表示式/整型表示式

雙目運算子

4

+

表示式+表示式

左到右

雙目運算子

-

表示式-表示式

雙目運算子

5

<< 

左移

變數<<表示式

左到右

雙目運算子

>> 

右移

變數>>表示式

雙目運算子

6

大於

表示式>表示式

左到右

雙目運算子

>=

大於等於

表示式>=表示式

雙目運算子

小於

表示式<表示式

雙目運算子

<=

小於等於

表示式<=表示式

雙目運算子

7

==

等於

表示式==表示式

左到右

雙目運算子

!=

不等於

表示式!=表示式

雙目運算子

8

&

按位與

表示式&表示式

左到右

雙目運算子

9

^

按位異或

表示式^表示式

左到右

雙目運算子

10

|

按位或

表示式|表示式

左到右

雙目運算子

11

&&

邏輯與

表示式&&表示式

左到右

雙目運算子

12

||

邏輯或

表示式||表示式

左到右

雙目運算子

13

?:

條件運算子

表示式1?表示式2: 表示式3

右到左

三目運算子

14

=

賦值運算子

變數=表示式

右到左

/=

除後賦值

變數/=表示式

*=

乘後賦值

變數*=表示式

%=

取模後賦值

變數%=表示式

+=

加後賦值

變數+=表示式

-=

減後賦值

變數-=表示式

<<=

左移後賦值

變數<<=表示式

>>=

右移後賦值

變數>>=表示式

&=

按位與後賦值

變數&=表示式

^=

按位異或後賦值

變數^=表示式

|=

按位或後賦值

變數|=表示式

15

,

逗號運算子

表示式,表示式,…

左到右

從左向右順序運算


記憶口訣

括號成員第一;        //括號運算子[]() 成員運算子.  ->
全體單目第二;        //所有的單目運算子比如++、 --、 +(正)、 -(負) 、指標運算*、&乘除餘三,加減四;   //這個"餘"是指取餘運算即%
移位五,關係六;    //移位運算子:<< >> ,關係:> < >= <= 等
等於(與)不等排第七;    //即== 和!=
位與異或和位或;    //這幾個都是位運算: 位與(&)異或(^)位或(|)    
"三分天下"八九十;  
邏輯或跟與;            //邏輯運算子:|| 和 &&
十二和十一;            //注意順序:優先順序(||)  底於 優先順序(&&) 
條件高於賦值,        //三目運算子優先順序排到13 位只比賦值運算子和","高
逗號運算級最低!    //逗號運算子優先順序最低 

參考文獻

  • https://www.slyar.com/blog/c-operator-priority.html
  • http://www.cnblogs.com/zhanglong0426/archive/2010/10/06/1844700.html