位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 邏輯運(yùn)算符

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-28

C語言提供了以下三種邏輯運(yùn)算符。

? ! : 邏輯非 

? && : 邏輯與 

? || : 邏輯或

C語言中參與邏輯運(yùn)算的操作數(shù)可以是字符型、整型、浮點(diǎn)型等數(shù)據(jù)類型。

(1)邏輯非(!)

邏輯非是單目運(yùn)算,表示對(duì)操作數(shù)取反,當(dāng)操作數(shù)為0,取反后表達(dá)式的值為1;當(dāng)操作數(shù)非0,表達(dá)式的值為1。例如:

    int a=2,b=5;

    ! a  (對(duì)a取反,a值為2,代表真,取反后結(jié)果為0)

    ! (a+3>b)(先算a+3>b,值為1,對(duì)0取反后為1)

(2)邏輯與(&&)

邏輯與是雙目運(yùn)算,當(dāng)邏輯與運(yùn)算符兩邊的操作數(shù)都為真,結(jié)果才為真。邏輯與運(yùn)算的執(zhí)行類似于圖中圖a所示的串聯(lián)電路,假設(shè)開關(guān)閉合狀態(tài)代表“真”,斷開狀態(tài)代表“假”;將燈泡亮的狀態(tài)代表“真”,滅的狀態(tài)代表“假”,那么只有當(dāng)K1、K2開關(guān)全部閉合(真),燈泡P才會(huì)亮(真),其他情況燈泡都不會(huì)亮。邏輯與的真值表見表所示。

    例如:

    int a=3,b=0,c,d;

    c=a&&b;

    d=a&&b+l;

    c的值為假“0”,而d的值為真“1”,因?yàn)樗阈g(shù)運(yùn)算的優(yōu)先級(jí)高于邏輯運(yùn)算,所以先算b+1,再計(jì)算邏輯與操作。

d

b

!d

d&&b

allb

0

1

1

0

1

0

0

1

0

0

1

1

0

1

1

1

0

0

0

1

★表中值為“a”用1表示,值為“假B用o表示

(3)邏輯或(||)

邏輯或也是雙目運(yùn)算。參加邏輯或運(yùn)算的兩個(gè)操作數(shù)只要有一個(gè)為真,結(jié)果就為真;兩個(gè)操作數(shù)均為假的時(shí)候,結(jié)果才為假。邏輯或的執(zhí)行類似于圖中圖b所顯示的并聯(lián)電路,只要兩個(gè)開關(guān)K1、K2有一個(gè)閉合(真),燈泡P就會(huì)亮(真)。邏輯或的真值表見表4所示。

   例如:

    int a=3,b=5,c,d;

    c=a||b;

    d=a-3||b-5;

    c的值為1,因?yàn)椴僮鲾?shù)a、b都為真。而d的值為0,因?yàn)樗阈g(shù)運(yùn)算符的優(yōu)先級(jí)高于邏輯運(yùn)算,先算a-3、b-5,值均為零。所以結(jié)果為0。


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部