一、邏輯運算子:
包括:①&&邏輯與 ②||邏輯或 ③!邏輯非
邏輯運算子用於對包含關係運算子的表示式進行合併或取非
對於使用邏輯運算子的表示式,返回0表示「假」,返回1表示「真」。關於邏輯運算子的解釋
請注意:任何使用兩個字元做符號的運算子,兩字元之間不應有空格,即將==寫成= =是錯誤的。
假設乙個程式在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關係運算子和邏輯運算子「與」來寫這個
條件的**。用&&表示「與」運算子,該條件**如下:
(a<10) && (b==7);如果左側為真再計算右側是否為真,如果左測為假,直接跳出,不計算右側。
類似地,「或」是用於檢查兩個條件中是否有乙個為真的運算子。它由(||)表示。左側如果為假,計算右側是否為真。左側如果為真,直接跳出,不計算右側。
如果上例
改為:如果任一語句為真,則程式需執行某些操作,則條件**如下:
(a<10) || (b==7);
第三個邏輯運算子「非」用乙個感嘆號(!)表示。這個運算子對表示式的真值取反。例如,如果變數s小於20,程式
程式需執行某些操作,則條件**如下:
(s<20)
或(!(s>=20)) //s不大於等於20
關係運算子和邏輯運算子的優先順序一般都低於算術運算子。
下面的語句
printf("%d",5>4+3);
將輸出 0
可以總結為:&&的結果是真真為真,真假為假。||的結果是假假為假,真假或者真真為真。
二、位運算子(必須是整數):
①&位與符 ②|位或符 ③^位異或符 ④~位取反符
以運算元10為例。位運算子將數字10視為1010。位運算子將運算元視為位而不是數值。數值
可以是任意進製的:十進位制、八進位制或十六進製制。位運算子則將運算元轉化為二進位制,並相應地返回1或0。
位運算子將數字視為二進位制值,並按位進行相應運算,運算完成後再重新轉換為數字。
例如:表示式10&14表示(1010 & 1110),它將返回表示1010的值10。因為真真得真。
表示式10|14表示(1010 | 1110,它將返回表示1110的值14。假假得假。全零得零。
表示式10^14表示(1010 ^ 1110), 它將返回表示0100的值4。此時是同性相斥,相同的就為假。
表示式~10表示(~1010),它將返回表示0101的值 -11。此號好理解,按位取反.
三、條件操作符
exp1? exp2 : exp3
如果exp1條件為真,那麼執行exp2語句,否則執行exp3語句。
四、逗號表示式
exp1, exp2, exp3, …expn
逗號表示式,就是用逗號隔開的多個表示式。 逗號表示式,從左向右依次執行。整個表示式的結果是最後乙個表示式的結果。
五、移位操作符(移位之後數本身並沒有發生變化)
<< 左移操作符 >> 右移操作符
右移》分為算術移位和邏輯移位
算術移位:右移後左側補符號位,正數補0,負數補1;
左移後,右側補0;
邏輯移位:左側補0;
左移《只有算術移位,左側補0;
六、單目操作符
! 邏輯反操作
- 負值 + 正值 & 取位址 sizeof 運算元的型別長度(以位元組為單位) ~ 對乙個數的二進位制按位取反 -- 前置(先用後減)、(先減後用)後置-- ++ 前置(先加後用)、後置++(先用後加) * 間接訪問操作符(解引用操作符) (型別) 強制型別轉換
C語言運算子簡單總結
1.算術運算子 將兩個數從左向右進行相加運算 將兩個數從左向右進行相減運算 將兩個數從左向右進行相乘運算 將兩個數從左向右進行除法運算,若兩數都為整數,則結果為整數部分 若有一為浮點數,則結 果為浮點數 對左運算元進行模右運算元運算,即算術求餘 自增運算,數值加1。b a,a先進行自增運算,再把結果...
C語言常用運算子 總結
注意左右運算型別一致 避免使用乘除運算子,cpu不一定支援,可能需要多個週期進行運算 取餘 n m res 0 m 1 範圍在0至m 1 常用的三個場景 1 取乙個範圍數 eg 給乙個任意的數字,得到乙個1 100以內的數字?m 100 1 res 2 得到m進製 的乙個個位數 3 迴圈資料結構的下...
C語言 運算子與 運算子
我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...