C++ 中的三元運算子 (? X : Y) 是什麼?
條件運算子 (? :) 是一個三元運算子(它接受三個運算元)。條件運算子的工作原理如下:
- 第一個運算元隱式轉換為 bool 型別。在繼續執行之前,它會被求值,並且所有副作用都會完成。
- 如果第一個運算元求值為真 (1),則求值第二個運算元。
- 如果第一個運算元求值為假 (0),則求值第三個運算元。
- 條件運算子的結果是其中一個運算元(第二個或第三個)的結果。在一個條件表示式中,只求值最後兩個運算元中的一個。條件運算子的求值非常複雜。以上步驟只是對其進行了快速介紹。條件表示式具有右結合性。第一個運算元必須是整型或指標型別。
- 以下規則適用於第二個和第三個運算元:
- 如果兩個運算元都是同一型別,則結果為該型別。
- 如果兩個運算元都是算術型別或列舉型別,則執行通常的算術
- 轉換(在標準轉換中介紹)以將其轉換為公共型別。
- 如果兩個運算元都是指標型別,或者如果一個運算元是指標型別,而另一個運算元是求值為 0 的常量表達式,則執行指標轉換以將其轉換為公共型別。
- 如果兩個運算元都是引用型別,則執行引用轉換以將其轉換為公共型別。
- 如果兩個運算元都是 void 型別,則公共型別為 void 型別。
- 如果兩個運算元都是相同的使用者定義型別,則公共型別為該型別。
- 如果運算元具有不同的型別,並且至少有一個運算元具有使用者定義型別,則使用語言規則確定公共型別。(請參閱下面的警告。)
示例
#include <iostream>
using namespace std;
int main() {
int i = 1, j = 2;
cout << ( i > j ? i : j ) << " is greater." << endl;
}輸出
這將給出以下輸出:
2 is greater.
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP