運算的優先順序與結合性

2021-06-25 15:26:57 字數 2325 閱讀 8070

運算子型別

優先順序運算子

運算物件的個數

結合性 基本

1    ()

[ ]  

−>         

自左至右單目

2    !

~ ++ −− + − (type) * & sizeof  

1 (單目運算子) 

自右至左算術

3   

* / %                  

2 (雙目運算子) 

自左至右

4    +

−                      移位

5   

>> <<                            

2 (雙目運算子) 

自左至右關係

6   

< <= > >=                     

2 (雙目運算子) 

自左至右

7   

==  !=                            

位邏輯8   

&                                      

2 (雙目運算子

)   

自左至右

9   

^                                  

10  

|                                邏輯

11  

&&                              

2 (雙目運算子) 

自左至右

12  

||                                條件

13  

?:                               

3 (三目運算子) 

自右至左賦值

14  

= +=

−= *= /= %= !=

>>= <<=  

2 (雙目運算子) 

自右至左逗號

15   ,

n            

自左至右

取模運算子

%

——取模運算子,或稱求餘運算子。

取模運算子實質上是數**算中的求餘運算子,其兩個操作物件都必須是整數。結果的符號與

%左邊的運算元的符號相同,如

20%6=2,20%(-6)=2,-20%6=-2,-20%-6=-2。

自增、自減運算子

++i和i++

的作用都相當於

i=i+1,

表示將i

的內容在原來的基礎上加1。

--i和i--

的作用都相當於

i=i-1,

表示將i

的內容在原來的基礎上加1。

但是,將它們用在表示式中,字首和字尾是有區別的。

i=51;

j=++i;(

i的值先加1變成

52,再賦給j,

j的值為52)

j=i++

;(先將

i的值賦給j,

j的值為

51,然後i再加

1變為52)

邏輯與

&&和邏輯或

||的短路求值

邏輯與&&:當兩個運算分量同時為真時,結果才為真。

a&&b (如果a

為假時,整個條件就為假,程式不會執行b)

邏輯或||

:只要其中乙個運算分量為真,結果就為真。

a||b(如果a

為真,整個條件就為真,程式也不會執行b)

位邏輯運算子

&

——按位與 |

——按位或 ^

——按位異或 ~

——按位取反

強制轉換運算子

(type)

表示式

例:int i,j;

double a;

i=j+(int)a;

長度運算子

sizeof

sizeof(type) 例

:sizeof(double);

取值運算子

&例:

printf(「%d」,&r);





運算子 優先順序 結合性

語言的運算子可分為以下幾類 1.算術運算子 用於各類數值運算。包括加 減 乘 除 求餘 或稱模運算,自增 自減 共七種。2.關係運算子 用於比較運算。包括大於 小於 等於 大於等於 小於等於 和不等於 六種。3.邏輯運算子 用於邏輯運算。包括與 或 非 三種。4.位操作運算子 參與運算的量,按二進位...

運算子優先順序和結合性

所謂優先順序就是當乙個表示式中有多個運算子時,先計算誰,後計算誰。這個其實我們在小學學算術的時候就學過,如1 4 2。但是c語言中的運算子已經遠不止四則運算中的加減乘除了,還有其他很多運算子。當它們出現在同乙個表示式中時先計算誰後計算誰呢?所以本節還是有必要講一下的。最後我還會將所有運算子展示出來,...

運算子優先順序和結合性

優先順序 運算子含義 運算物件個數 結合順序1 初等運算子 自左至右 下標運算子 指向結構體成員運算子 結構體成員運算子2!單目運算子 1 單目運算子 自右至左 負號 指標運算子 sizeof 型別 型別轉換運算子3 乘法算數運算子 2 雙目運算子 自左至右 4 2 雙目運算子 自左至右 5 2 雙...