對邏輯與運算子「 」和「 」的理解

2021-10-05 17:03:07 字數 844 閱讀 1846

鋪墊:邏輯與運算子的功能是的前後表示式進行相與的判斷,即同為真結果才為真,只要有乙個為假,結果就為假

問題:正因為有這一特點,為了節省時間,邏輯與在使用時具有短路特性,即當發現第乙個表示式為假時就不會去做對第二個表示式的運算。

**重點:**當我們知道有這一特性之後,在普通使用過程中只要恰當的去注意他就行了,但是這一特性有乙個妙用,如下資料結構**:

if

(plist !=

null

&& plist->next !=

null

)//plist為單鏈表節點指標

我們先來分析一下這行**,本來plist->next != null這個表示式必須得在plist != null這個表示式為真時做出運算,即我們在plist不為空的情況下才能去判斷它的next,否則就會報錯,那麼用「&&」運算子連線起來之後剛好有這一效果,在短路特性的約束之下只有在plist != null為真時plist->next != null才會做出運算,但是這裡需要注意的一點是這兩個表示式的位置不能調換,至於為什麼,再看一遍!

邏輯或運算子也有這一特點,其短路特性和邏輯與運算子相似,我們對上邊的**稍加改動,

if

(plist ==

null

|| plist->next ==

null

)//plist為單鏈表節點指標

其原理與上邊相同,可以自己揣摩揣摩。

邏輯運算子與位運算子

1.運算子 用於對邏輯值的取反運算。當邏輯值為true時,經過取反變為false 當邏輯值為false時取反成true。2.運算子 運算子 用於對邏輯值進行異或運算。當運算兩側同時為true或false時,運算結果為false,否則為true。3.運算子 和 運算子 和 均用於邏輯與運算。當兩側同時...

邏輯運算子和位運算子

邏輯與 當且僅當左右兩個關係表示式均為true時返回true,否則返回false。邏輯或 當且僅當左右兩個關係表示式均為false時返回true,否則返回true。邏輯非!單目運算子,對關係表示式取反。與 兩個運算元二進位制形式的對應位中均為1時,相應的位返回1,否則返回0.例如128 129,返回...

關係運算子和邏輯運算子

關係運算子也叫比較運算子,像數學中10 9 1 x 5等等,表示一種判定關係,給出的這種關係可能是正確的也可能是錯誤的,例如可以有 1 2 這種判定,但這是錯誤的判斷。計算機中也支援這種判定,但結果只有兩種,要麼判斷正確要麼判斷錯誤。正確則稱為 真 錯誤則稱為 假 任意給出這樣乙個判定,要麼為真要麼...