& 和 && 是 C 語言中用於邏輯運算的運算符,各有不同的功能和優先權。 & 執行位元運算,對每個二進位位元進行邏輯運算,產生二進位結果。 && 執行邏輯 AND 運算,只有當兩個運算元都為真時才為真,產生布林結果,且優先權低於 &。
C 語言中& 和&& 的差異
& 和&& 是C 語言中用於邏輯運算的兩個操作符,但它們具有不同的功能和優先權。
位元運算子 (&)
- 執行位元運算,即對運算元的每個二進位位元進行邏輯運算。
- 運算結果為二進位數,其中每個位元是對應運算元對應位的邏輯運算結果。
- 常用於屏蔽位元、設定位元和清除位元。
邏輯運算子(&&)
- #執行邏輯AND 運算,即只有當兩個運算元都為真時,結果才會為真。
- 運算結果為一個布林值(真或假)。
- 短路求值,也就是如果第一個運算元為假,則不再計算第二個運算元。
優先權
- & 的優先權高於 &&。這意味著,在沒有括號的情況下,& 運算優先於 && 運算。
實例
-
#& 運算:
- 10 & 5 = 0b1010 & 0b0101 = 0b0000 (4)
-
&& 運算:
- #(10 > 5) && (5 != 0) = true && true = true
#結論
- & 執行位元運算,產生二進位結果。
- && 執行邏輯 AND 運算,產生布林結果。
- & 優先權高於 &&。
以上是c語言中&和&&區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!