c語言運算子號詳細說明
阿新 • • 發佈:2019-01-07
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級 結合方向 左結合編輯
, 逗號運算子
說明:
同一優先順序的運算子,運算次序由結合方向所決定。
簡單記就是:! > 算術運算子 > 關係運算符 > && > || > 賦值運算子