概括:一般的想法是掌握優先順序與結合性意義不大,因為可以用括號搞定一切,但是我們不能保證別人也這麼做,所以在看別人的程式時,就有可能因為優先順序和結合性的問題而理解錯誤。總結一些規律來記住優先順序和結合性是有必要的。
一、優先順序由高到底順序如下:
規律一、運算子所需要的運算元越多優先順序越低。
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 自右向左 自左向右 自左向右 自左向右 自左向右 自左向右 自左向右...