C語言-操作符歸納
阿新 • • 發佈:2018-12-17
操作符
指令系統的每一條指令都有一個操作符,它表示該指令應進行什麼性質的操作。不同的指令用操作符這個欄位的不同編碼來表示,每一種編碼代表一種指令。組成操作符欄位的位數一般取決於計算機指令系統的規模。 C語言中的操作符有位操作符、算術操作符、賦值操作符等。
1. 位操作符
’<<’—左移位 把一個數的二進位制位整體向左移動N個位。 例如:n=5<<2 把5的二進位制向左移動兩位 ’>>’—右移位 把一個數的二進位制位整體向右移動N個位。
- 分為算術右移和邏輯右移 ,算術右移是指整體向右移,給左邊的空缺位補充符號位;邏輯右移是指整體向右移,給左邊的空缺位補充0.(取決於編譯器,一般多是算術右移)。
- 左移一位等同於於給原數字*2;右移一位相當於(不是等同於)給原數字/2; (-1>>1=-1)
’&’’|’’^’—和、或、與
- 運算元必須為int型
- a^a=0;可以用來求取只出現一次的數。
- a&1;求的a的最後一位是否為1。
2. 算術操作符 ’+’、’-’、’*’、’/’、’%’
-
上述操作符均是雙目運算子,且除了‘%’(取模運算子)都可以操作int型和float型。3.0/4的結果是浮點型;3/4的結果是整形;
-
‘/’—取整運算子;’%’—取模運算子;n%10取得n的最後一位數字,n/10得到捨去最後一位後的數字,兩個組合可以輸出數字的每一位,另外%2、/2也可以輸出一個數的二進位制序列;
3. 賦值操作符 ’+=’ ‘-=’ ‘*=’ ‘/=’ ‘^=’ ‘%=’ ‘|=’ ‘&=’ ‘sizeof’ ‘~’ ‘- -’ ‘++’ ‘!=’ ‘()’等
- ‘- -’ '++'需要注意前置和後置,影響結果。
- ‘~’—按位取反;可以把a的二進位制第n位改為1 。
4. 關係操作符 ‘&&’ ‘||’—和、或
-
注意區分&&和&,|和||;
-
使用時注意“短路”現象,口訣:&&為0則停,||為1則停;
5. 逗號表示式 exp1,exp2,…,expn
- 逗號運算子一定要從左到右依次運算,雖然以最後一個表示式為整個表示式的結果,但不要只計算最後一個表示式。
6.條件運算子 exp1?exp2:exp3;
- 相當於if語句的功能,exp1為真,則執行exp2,反之執行exp3 。
7. 特殊的操作符 [ ]—下標引用操作符
- 運算元為2個:下標數、陣列名,arr[0]和0[arr]和arr[]0都是正確的。
‘·’、‘->’—訪問結構成員
- 用於訪問結構體變數的成員。
操作符優先順序
- 表格來自於網路非原創
寧靜致遠