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

運算子優先順序及記憶口訣

喵哥每次都要百度運算子優先順序。。。

轉自: http://blog.csdn.net/huangblog/article/details/8271791

http://www.cnblogs.com/zhanglong0426/archive/2010/10/06/1844700.html

優先順序

運算子

名稱或含義

使用形式

結合方向

說明

1

[]

陣列下標

陣列名[常量表達式]

左到右

--

()

圓括號

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

--

.

成員選擇(物件)

物件.成員名

--

->

成員選擇(指標)

物件指標->成員名

--

 

2

-

負號運算子

-表示式

右到左

單目運算子

~

按位取反運算子

~表示式

++

自增運算子

++變數名/變數名++

--

自減運算子

--變數名/變數名--

*

取值運算子

*指標變數

&

取地址運算子

&變數名

!

邏輯非運算子

!表示式

(型別)

強制型別轉換

(資料型別)表示式

--

sizeof

長度運算子

sizeof(表示式)

--

 

3

/

表示式/表示式

左到右

雙目運算子

*

表示式*表示式

%

餘數(取模)

整型表示式%整型表示式

4

+

表示式+表示式

左到右

雙目運算子

-

表示式-表示式

5

<< 

左移

變數<<表示式

左到右

雙目運算子

>> 

右移

變數>>表示式

 

6

大於

表示式>表示式

左到右

雙目運算子

>=

大於等於

表示式>=表示式

小於

表示式<表示式

<=

小於等於

表示式<=表示式

7

==

等於

表示式==表示式

左到右

雙目運算子

!=

不等於

表示式!= 表示式

 

8

&

按位與

表示式&表示式

左到右

雙目運算子

9

^

按位異或

表示式^表示式

左到右

雙目運算子

10

|

按位或

表示式|表示式

左到右

雙目運算子

11

&&

邏輯與

表示式&&表示式

左到右

雙目運算子

12

||

邏輯或

表示式||表示式

左到右

雙目運算子

 

13

?:

條件運算子

表示式1?

表示式2: 表示式3

右到左

三目運算子

 

14

=

賦值運算子

變數=表示式

右到左

--

/=

除後賦值

變數/=表示式

--

*=

乘後賦值

變數*=表示式

--

%=

取模後賦值

變數%=表示式

--

+=

加後賦值

變數+=表示式

--

-=

減後賦值

變數-=表示式

--

<<=

左移後賦值

變數<<=表示式

--

>>=

右移後賦值

變數>>=表示式

--

&=

按位與後賦值

變數&=表示式

--

^=

按位異或後賦值

變數^=表示式

--

|=

按位或後賦值

變數|=表示式

--

 

15

逗號運算子

表示式,表示式,…

左到右

--

說明:

    同一優先順序的運算子,運算次序由結合方向所決定。
    簡單記就是:! > 算術運算子 > 關係運算符 > && > || > 賦值運算子

口訣:::

 

一共有十五個優先順序: 

1   ()  []  .  ->

2   !  ~   -(負號) ++  --   &(取變數地址)*   (type)(強制型別)    sizeof 

3   * / %

4   + - 

5   >> <<  

6   > >= < <= 

7   == !=   

8   &  

9   ^   

10  |   

11  &&

12  ||

13  ?:

14   =  +=  -=  *=  /=   %=  |=   ^=   &=   >>=   <<=

15  ,

就著多吧   結合性:2   13  14  是從右至左   其他都是  從左至右有問題可以在交流的 

 

共同進步 

 


括號成員第一;        //括號運算子[]() 成員運算子.  ->

全體單目第二;        //所有的單目運算子比如++、 --、 +(正)、 -(負) 、指標運算*、&乘除餘三,加減四;   //這個"餘"是指取餘運算即%

移位五,關係六;    //移位運算子:<< >> ,關係:> < >= <= 等

等於(與)不等排第七;    //即== 和!=

位與異或和位或;    //這幾個都是位運算: 位與(&)異或(^)位或(|)    

"三分天下"八九十;  

邏輯或跟與;            //邏輯運算子:|| 和 &&

十二和十一;            //注意順序:優先順序(||)  底於 優先順序(&&) 

條件高於賦值,        //三目運算子優先順序排到13 位只比賦值運算子和","高

逗號運算級最低!    //逗號運算子優先順序最低