強制型別轉換運算子的優先順序

2021-08-07 10:55:23 字數 3383 閱讀 2163

int i=10;

char b=20;

如:i=b;//這樣賦值沒有問題,因為低位元組型別轉換成高位元組型別。

如果是b=i;//這樣會有問題,b=(char)i;//因為高字型轉換為低位元組的型別後,若int i當前數值超過127時,會導致溢位,資料缺失。

所以。如果高位元組型別要強制轉換為低位元組型別時,要考慮溢位問題。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

相同優先順序中,按結合順序計算。大多數運算是從左至右計算。

只有三個優先順序是從右至左結合的,它們是

單目運算子

、條件運算子

、賦值運算子。

基本的優先順序需要記住:

指標最優,單目運算優於雙目運算。如正負號。

先乘除(模),後加減。

先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.

邏輯運算最後計算。

i++優先順序要大於++i

優先順序運算子

名稱或含義

使用形式

結合方向

說明

1

後置++

後置自增運算子

變數名++

左到右

後置--

後置自減運算子

變數名--

[ ]

陣列下標

陣列名[整型表示式]

( )

圓括號

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

. 成員選擇(物件)

物件.成員名

->

成員選擇(指標)

物件指標->成員名

2

-

負號運算子

-表示式

右到左

單目運算子

(型別)

強制型別轉換

(資料型別)表示式

前置++

前置自增運算子

++變數名

單目運算子

前置--

前置自減運算子

--變數名

單目運算子

*

取值運算子

*指標表示式

單目運算子

&

取位址運算子

&左值表示式

單目運算子

!

邏輯非運算子

!表示式

單目運算子

~

按位取反運算子

~表示式

單目運算子

sizeof

長度運算子

sizeof 表示式/sizeof(型別)

3

/

表示式/表示式

左到右

雙目運算子

*

表示式*表示式

雙目運算子

%

餘數(取模)

整型表示式%整型表示式

雙目運算子

4

+

表示式+表示式

左到右

雙目運算子

-

表示式-表示式

雙目運算子

5

<<

左移

表示式《表示式

左到右

雙目運算子

>>

右移

表示式》表示式

雙目運算子

6

>

大於

表示式》表示式

左到右

雙目運算子

>=

大於等於

表示式》=表示式

雙目運算子

<

小於

表示式《表示式

雙目運算子

<=

小於等於

表示式<=表示式

雙目運算子

7

==

等於

表示式==表示式

左到右

雙目運算子

!=

不等於

表示式!= 表示式

雙目運算子

8

&

按位與

整型表示式&整型表示式

左到右

雙目運算子

9

^

按位異或

整型表示式^整型表示式

左到右

雙目運算子

10

|

按位或

整型表示式|整型表示式

左到右

雙目運算子

11

&&

邏輯與

表示式&&表示式

左到右

雙目運算子

12

||

邏輯或

表示式||表示式

左到右

雙目運算子

13

?:

條件運算子

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

右到左

三目運算子

14

=

賦值運算子

變數=表示式

右到左

/=

除后賦值

變數/=表示式

*=

乘後賦值

變數*=表示式

%=

取模後賦值

變數%=表示式

+=

加後賦值

變數+=表示式

-=

減後賦值

變數-=表示式

<<=

左移後賦值

變數<<=表示式

>>=

右移後賦值

變數》=表示式

&=

按位與後賦值

變數&=表示式

^=

按位異或後賦值

變數^=表示式

|=

按位或後賦值

變數|=表示式

15

,

逗號運算子

表示式,表示式,…

左到右

從左向右順序運算

運算子優先順序 C 運算子優先順序

c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...

運算子優先順序 Python 運算子優先順序

python 運算子優先順序 運算子描述 lambda lambda表示式 or布林 或 and布林 與 not x 布林 非 in,not in 成員測試 is,is not 同一性測試 比較 按位或 按位異或 按位與 移位 加法與減法 乘法 除法與取餘 x,x 正負號 x 按位翻轉 指數 x.a...

運算子優先順序 PHP運算子優先順序

php運算子優先順序 結合方向 運算子附加資訊 非結合clone new clone 和 new左 array 非結合 遞增 遞減運算子 非結合 int float string array object bool 型別非結合 instanceof 型別右結合 邏輯操作符 左 算術運算子 左 算術運...