C語言基礎丨運算子之邏輯運算子(四)

2021-10-17 14:57:56 字數 1983 閱讀 4274

在高中數學中,我們就學過邏輯運算,例如p為真命題,q為假命題,那麼「p且q」為假,「p或q」為真,「非q」為真。在c語言中,也有類似的邏輯運算:

在程式設計中,我們一般將零值稱為「假」,將非零值稱為「真」。邏輯運算的結果也只有「真」和「假」,「真」對應的值為 1,「假」對應的值為 0。

1) 與運算(&&)

參與運算的兩個表示式都為真時,結果才為真,否則為假。例如:

5&&0

5為真,0為假,相與的結果為假,也就是 0。

(5>0) && (4>2)

5>0 的結果是1,為真,4>2結果是1,也為真,所以相與的結果為真,也就是1。

2) 或運算(||)

參與運算的兩個表示式只要有乙個為真,結果就為真;兩個表示式都為假時結果才為假。例如:

10 || 0

10為真,0為假,相或的結果為真,也就是 1。

(5>0) || (5>8)

5>0 的結果是1,為真,5>8 的結果是0,為假,所以相或的結果為真,也就是1。

3) 非運算(!)

參與運算的表示式為真時,結果為假;參與運算的表示式為假時,結果為真。例如:

!0

0 為假,非運算的結果為真,也就是 1。

!(5>0)

5>0 的結果是1,為真,非運算的結果為假,也就是 0。

以上三種邏輯運算子中,邏輯非 ! 的優先順序最高,邏輯與 && 次之,邏輯或  ||  優先順序最低。即算術、邏輯、賦值運算子的優先順序順序為:

邏輯非 ! >算術 > 邏輯與 &&、邏輯或 || > 賦值=

邏輯表示式的值為邏輯值,即布林型(bool),該型別為 c99 新增的,一些編譯器可能還不支援該型別。

邏輯值分為邏輯真值和邏輯假值。

一般情況下,在判斷時,僅有零值被判斷為邏輯假值(false),一切非零值均可被判斷為邏輯真值(true);

在儲存和表示時,通常,使用 1 表示邏輯真值,0表示邏輯假值。

邏輯與 && 運算子的運算規則:只有兩個運算元均為邏輯真時,結果才為真。其餘情況,結果均為假。

邏輯或 || 運算子的運算規則:只有兩個運算元均為邏輯假時,結果才為假。其餘情況,結果均為真。

例如,設有定義語句

inta=3,b=5;

則有:

!a:由於 a 非零,為真,!a 為假,其值為 0。

a||b:由於 a 和 b 均非零,均為真,故邏輯或的結果為真,其值為 1。

a&&b:由於 a 和 b 均非零,均為真,故邏輯與的結果為真,其值為 1。

!a||b&&2:由於邏輯非 ! 優先順序最高,首先與 a 結合,而 && 優先順序高於 ||,相當於(!a)||(b&&2), 即 0||1 為真,其值為 1。

邏輯運算子舉例:

執行結果:

0,0

1,00,1

如果你想更好的提公升你的程式設計能力,學好c語言c++程式設計!彎道超車,快人一步!

【c語言c++學習企鵝圈子

關係運算子,邏輯運算子

關係運算子 判斷左邊表示式的值是否 大於 右邊表示式的值 判斷左邊表示式的值是否 小於 右邊表示式的值 判斷左邊表示式的值是否 大於或者等於 右邊表示式的值 判斷左邊表示式的值是否 小於或者等於 右邊表示式的值 判斷左邊表示式的值是否 等於右邊的表示式的值 判斷左邊表示式的值是否 不等於 右邊表示式...

C語言 邏輯運算子

邏輯運算子 含義 與ll 或!非邏輯表示式表示式的求值順序是從左往右。一旦發現有使整個表示式為假的因素,立即停止求值。c提供條件表示式作為表達if else語句的一種便捷方式,該表示式使用?條件運算子。分為兩部分,需要3個運算物件。三元運算子 條件表示式的通用形式為 expression1 expr...

C語言 邏輯運算子

邏輯與運算子 邏輯或運算子 邏輯非運算子 運算的結果只有2個,真 為1,假 為0 邏輯與運算子 1.使用格式 條件a 條件b 2.運算結果 只有當條件a與條件b,為真的時候,它的結果才為1,也就是真 其餘情況下結果都為0,也就是假,所以,條件a或條件b只要有乙個不成立,結果都為0,也就是假 邏輯與的...