C語言提供了一組邏輯運算符:或(||)、且(&&)、非(!),分別對應于命題邏輯中的 OR、AND、NOT運算。
- 邏輯運算符:或 ||。在命題邏輯中,當P=1或Q=1時,P||Q等于1。
- 邏輯運算符:且 &&。在命題邏輯中,當P=1且Q=1時,P&&Q才等于1。
- 邏輯運算符:非 !。在命題邏輯中,當P等于0時,!P等于1,反之亦然。


邏輯運算認為所有非零的參數都表示為TRUE,而參數0表示FALSE,它們返回1(TRUE)或0(FALSE)。
邏輯運算符&&和||與對應的位級運算&和|之間一個重要區別是,如果對第一個參數求值就能確定表達式的結果,那么邏輯運算符就不會對第二個參數求值。
- 對于 x && y:當邏輯與左邊x為FALSE時,則不再進行右邊y的判斷,結果為FALSE。因此,若a=0,表達式 a && 5/a 將不會造成除零。
- 對于 x || y:當邏輯或左邊x為FALSE,繼續右邊y的判斷,如果為TRUE,則邏輯或結果為TRUE;當邏輯或左邊x為TRUE,則不再進行右邊y的判斷,即邏輯或結果為TRUE。
邏輯運算符和其它運算符優先級從低到高依次為:
邏輯非 ! > 算術運算符 > 關系運算符 > 邏輯與 &&、邏輯或 || > 賦值=
更詳細的運算符優先級可參考之前發布的文章:《C運算符的優先級和結合性》
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。
發表評論
請登錄后評論...
登錄后才能評論