1. 程式人生 > >c語言運算子號詳細說明

c語言運算子號詳細說明

C語言中具有右結合性的運算子包括所有單目運算子以及賦值運算子(=)和條件運算子。其它都是左結合性。

判斷表示式計算順序時,先按優先順序高的先計算,優先順序低的後計算,當優先順序相同時再按結合性,或從左至右順序計算,或從右至左順序計算。

C語言中的符號
運算子的種類
語言的運算子可分為以下幾類:

1 算術運算子
用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(–)共七種。

2.關係運算符
用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)
、小於等於(<=)和不等於(!=)六種。

3.邏輯運算子
用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4.位操作運算子
參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5.賦值運算子
用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6.條件運算子
這是一個三目運算子,用於條件求值(?:)。

7.逗號運算子
用於把若干表示式組合成一個表示式(,)。

8.指標運算子
用於取內容(*)和取地址(&)二種運算。

9.求位元組數運算子
用於計算資料型別所佔的位元組數(sizeof)。

10.特殊運算子
有括號(),下標[],成員(→,.)等幾種。

優先順序排序:

優先順序1級 結合方向 左結合(自左至右)編輯
( ) 圓括號
[ ] [1]  下標運算子
-> 指向結構體成員運算子
. 結構體成員運算子[1]  (請注意它是一個實心圓點)

優先順序2級 結合方向 右結合(自右至左)單目運算子編輯
! 邏輯非運算子
~ 按位取反運算子
++ 自增運算子
-- 自減運算子
- 負號運算子
(型別) 型別轉換運算子
* 指標運算子
& 地址與運算子
sizeof 長度運算子

優先順序3級 結合方向 左結合 雙目運算子編輯
* 
乘法運算子 / 除法運算子 % 取餘運算子 優先順序4級 結合方向 左結合 雙目運算子編輯 + 加法運算子 - 減法運算子 優先順序5級 結合方向 左結合 雙目運算子編輯 << 左移運算子 >> 右移運算子 優先順序6級 結合方向 左結合 雙目運算子編輯 <、<=、>、>= 關係運算符 優先順序7級 結合方向 左結合 雙目運算子編輯 == 等於運算子 (判斷) != 不等於運算子(判斷) 優先順序8級 結合方向 左結合 雙目運算子編輯 & 按位與運算子 優先順序9級 結合方向 左結合 雙目運算子編輯 ^ 按位異或運算子 優先順序10級 結合方向 左結合 雙目運算子編輯 | 按位或運算子 舉例:0xfe|0xef 即為1111 1110 與1110 1111按位或運算則答案為:1111 1111 即0xff。 優先順序11級 結合方向 左結合 雙目運算子編輯 && 邏輯與運算子 優先順序12級 結合方向 左結合 雙目運算子編輯 || 邏輯或運算子 優先順序13級 結合方向 右結合 三目運算子編輯 ? : 條件運算子 優先順序14級 結合方向 右結合 雙目運算子編輯 = 賦值運算子 + = 加後賦值運算子 如s+=1表示s=s+1 - = 減後賦值運算子 如s-=1表示s=s-1 * = 乘後賦值運算子 / = 除後賦值運算子 % = 取模後賦值運算子 < <= 左移後賦值運算子 >>=右移後賦值運算子 &= 按位與後賦值運算子 ^=按位異或後賦值運算子 |= 按位或後賦值運算子 優先順序15級 結合方向 左結合編輯 , 逗號運算子

說明:
同一優先順序的運算子,運算次序由結合方向所決定。
簡單記就是:! > 算術運算子 > 關係運算符 > && > || > 賦值運算子