首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

程式設計中邏輯運算符的短路求值機制詳解

     編輯:程式設計疑難解答

什麼是短路求值?

邏輯運算符 &&(邏輯與)和 ||(邏輯或)在評估時,若第一個運算元已能決定最終結果,則不再評估第二個運算元。這稱為「短路」。

具體規則

運算符第一個運算元動作結果
&&false (0)短路,不算第二個false
&&true (非 0)必須算第二個視第二個而定
||true (非 0)短路,不算第二個true
||false (0)必須算第二個視第二個而定

實戰意義

  1. 效能優化:避免不必要的函數調用、複雜運算。
  2. 安全防護:if (ptr != NULL && ptr->len > 0) 避免空指針解引用。
  3. 副作用控制:第二運算元含副作用(如 func()、i++)時,短路會導致副作用不發生。

驗證範例

int a = 0, b = 0;
if (a != 0 && (b = 10) > 0) { } // 短路,b 保持 0
if (a == 0 || (b = 20) > 0) { } // 不短路,b 變 20

非短路運算符

&、| 為位運算符,用於邏輯判斷時不短路,兩側必全算。慎用於邏輯判斷,除非確需要副作用全執行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved