C語言運算子的優先順序與結合性

2021-05-26 11:15:37 字數 876 閱讀 6377

概括:一般的想法是掌握優先順序與結合性意義不大,因為可以用括號搞定一切,但是我們不能保證別人也這麼做,所以在看別人的程式時,就有可能因為優先順序和結合性的問題而理解錯誤。總結一些規律來記住優先順序和結合性是有必要的。

一、優先順序由高到底順序如下:

規律一、運算子所需要的運算元越多優先順序越低。

1、特殊運算子(特殊情況特殊對待)

(), , ->, .

2、單目運算子

!, ~, ++, --, +(正號), -(負符號),*, &,

sizeof()

3、算術運算(雙目運算子,分**,乘除加減移位)

3.1

*, /, %

3.2

+, -

3.3<< >>(移位為什麼在算術運算子的最後,因為還沒有計算機的時候就有加減乘除了,「小樣,你新來的吧」)

4、關係運算子 (雙目運算子,關係運算子為什麼要放到算術運算子的後面,因為自然的邏輯是先運算後比較)

4.1<, <=, >=, >

4.2==,!=  

規律二、「與」的優先順序比「或」高

5、位運算子 (雙目運算子,分三層)

5.1&

5.2^

5.3|

規律三、位運算優先順序比邏輯運算優先順序高

6、邏輯運算子 (雙目運算子)

6.1&&

6.2

||7、條件運算子(三目運算子)

? :8、各種賦值  (所有運算完成才能賦值

)=, +=, -=, *=, /=,,&=, ^=, |=, <<=, >>=

9、逗號運算子 (只是為了分割表示式,所以優先順序最低,很少用到)

,二、結合性  

只有單目,三目,賦值是從右向左,其他是從左向右。

運算子 優先順序 結合性

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

C語言運算子優先順序及結合性

今天去翻了下c語言運算子的優先順序和結合性,發現當初學習的時候就沒認真記住,慚愧。發現一篇講得不錯的文章,編輯了下轉來供以後翻閱。c語言運算子優先順序表 由上至下,優先順序依次遞減 運算子 結合性 自左向右 type sizeof 自右向左 自左向右 自左向右 自左向右 自左向右 自左向右 自左向右...

C語言運算子優先順序及結合性

今天去翻了下c語言運算子的優先順序和結合性,發現當初學習的時候就沒認真記住,慚愧。發現一篇講得不錯的文章,編輯了下轉來供以後翻閱。c語言運算子優先順序表 由上至下,優先順序依次遞減 運算子 結合性 自左向右 type sizeof 自右向左 自左向右 自左向右 自左向右 自左向右 自左向右 自左向右...