C語言運算子總結心得

2021-07-29 13:18:18 字數 1757 閱讀 2247

一、邏輯運算子:

包括:①&&邏輯與 ②||邏輯或 ③!邏輯非

邏輯運算子用於對包含關係運算子的表示式進行合併或取非

對於使用邏輯運算子的表示式,返回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就是...