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

C++ 表達式 (1.5==(1.0||1.5)?1:2) 返回 2 的原因解析

     編輯:程式設計綜合問答

表達式拆解

(1.5 == (1.0 || 1.5) ? 1 : 2)

關鍵點:邏輯或運算符 || 的返回類型

在 C/C++ 中,|| 的操作數會隱式轉換為 bool,結果類型為 bool(true/false,數值上為 1/0)。

  1. 1.0 非零 → true (1)。
  2. 1.5 非零 → true (1)。
  3. 1.0 || 1.5 短路求值:左操作數為真,**直接返回 true (1)**,不再求值右側。
  4. 表達式變為 1.5 == true。true 參與數值比較提升為 1。
  5. 1.5 == 1 為假(0)。
  6. 三元運算符返回 2。

驗證代碼

#include 
int main() {
    std::cout << (1.0 || 1.5) << std::endl; // 輸出 1 (true)
    std::cout << (1.5 == (1.0 || 1.5)) << std::endl; // 輸出 0 (false)
    std::cout << (1.5 == (1.0 || 1.5) ? 1 : 2) << std::endl; // 輸出 2
}

教訓

不要將浮點數直接與邏輯運算結果比較。若意圖判斷 1.5 是否等於 1.0 或 1.5,應寫為 (1.5 == 1.0 || 1.5 == 1.5)。

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