在高中數學中,我們就學過邏輯運算,例如p為真命題,q為假命題,那麼「p且q」為假,「p或q」為真,「非q」為真。在c語言中,也有類似的邏輯運算:
在程式設計中,我們一般將零值稱為「假」,將非零值稱為「真」。邏輯運算的結果也只有「真」和「假」,「真」對應的值為 1,「假」對應的值為 0。
1) 與運算(&&)
參與運算的兩個表示式都為真時,結果才為真,否則為假。例如:
5&&05為真,0為假,相與的結果為假,也就是 0。
(5>0) && (4>2)5>0 的結果是1,為真,4>2結果是1,也為真,所以相與的結果為真,也就是1。
2) 或運算(||)
參與運算的兩個表示式只要有乙個為真,結果就為真;兩個表示式都為假時結果才為假。例如:
10 || 010為真,0為假,相或的結果為真,也就是 1。
(5>0) || (5>8)5>0 的結果是1,為真,5>8 的結果是0,為假,所以相或的結果為真,也就是1。
3) 非運算(!)
參與運算的表示式為真時,結果為假;參與運算的表示式為假時,結果為真。例如:
!00 為假,非運算的結果為真,也就是 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如果你想更好的提公升你的程式設計能力,學好c語言c++程式設計!彎道超車,快人一步!1,00,1
【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,也就是假 邏輯與的...