1. 程式人生 > >C語言算符優先順序

C語言算符優先順序

C語言優先順序:

編輯

優先順序

運算子

名稱或含義

使用形式

結合方向

說明

1

[]

陣列下標

陣列名[整型表示式]

左到右

 

()

圓括號

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

 

.

成員選擇(物件)

物件.成員名

 

->

成員選擇(指標)

物件指標->成員名

 

2

-

負號運算子

-算術型別表示式

右到左

單目運算子

(type)

強制型別轉換

(純量資料型別)純量表達式

 

++

自增運算子

++純量型別可修改左值表示式

單目運算子

--

自減運算子

--純量型別可修改左值表示式

單目運算子

*

取值運算子

*指標型別表示式

單目運算子

&

取地址運算子

&表示式

單目運算子

!

邏輯非運算子

!純量型別表示式

單目運算子

~

按位取反運算子

~整型表示式

單目運算子

sizeof

長度運算子

sizeof 表示式

sizeof(型別)

 
3

/

表示式/表示式

左到右

雙目運算子

*

表示式*表示式

雙目運算子

%

餘數(取模)

整型表示式%整型表示式

雙目運算子

4

+

表示式+表示式

左到右

雙目運算子

-

表示式-表示式

雙目運算子

5

<<

左移

整型表示式<<整型表示式

左到右

雙目運算子

>>

右移

整型表示式>>整型表示式

雙目運算子

6

>

大於

表示式>表示式

左到右

雙目運算子

>=

大於等於

表示式>=表示式

雙目運算子

<

小於

表示式<表示式

雙目運算子

<=

小於等於

表示式<=表示式

雙目運算子

7

==

等於

表示式==表示式

左到右

雙目運算子

!=

不等於

表示式!= 表示式

雙目運算子

8

&

按位與

整型表示式&整型表示式

左到右

雙目運算子

9

^

按位異或

整型表示式^整型表示式

左到右

雙目運算子

10

|

按位或

整型表示式|整型表示式

左到右

雙目運算子

11

&&

邏輯與

表示式&&表示式

左到右

雙目運算子

12

||

邏輯或

表示式||表示式

左到右

雙目運算子

13

?:

條件運算子

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

右到左

三目運算子

14

=

賦值運算子

可修改左值表示式=表示式

右到左

 

/=

除後賦值

可修改左值表示式/=表示式

 

*=

乘後賦值

可修改左值表示式*=表示式

 

%=

取模後賦值

可修改左值表示式%=表示式

 

+=

加後賦值

可修改左值表示式+=表示式

 

-=

減後賦值

可修改左值表示式-=表示式

 

<<=

左移後賦值

可修改左值表示式<<=表示式

 

>>=

右移後賦值

可修改左值表示式>>=表示式

 

&=

按位與後賦值

可修改左值表示式&=表示式

 

^=

按位異或後賦值

可修改左值表示式^=表示式

 

|=

按位或後賦值

可修改左值表示式|=表示式

 

15

,

逗號運算子

表示式,表示式,…

左到右

從左向右順序結合

特別注意幾個例子:

int a=1&2^!3|4。(!)飛 (&)羽 (^)異嚯 (|)嚯。a=4

執行順序:

!3 =0。 (!-1=0,!100=0,!0=1)

1&2= 0。 (01&10) 

0^0=0.

0|4=4.    (000|100).

int b=1《《2+3。

b=pow(2,5);