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.
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP