条件演算子: または。:

expression ? expression : expression

解説

条件演算子 ( または。三項演算子 (:) 次の 3 とおりのオペランドを受け取ります) です。条件演算子は次のように動作します :

  • 1 番目のオペランドは bool に暗黙的に変換されます。これが評価されすべての副作用は進む前に実行されます。

  • 1 番目のオペランドが true (1) と評価されると2 番目のオペランドが評価されます。

  • 1 番目のオペランドが False (0) と評価されると3 番目のオペランドが評価されます。

条件演算子の結果は — 2 または番目のオペランドが評価される結果です。最後の 2 回のオペランドのうち条件式は 1 に評価されます。

条件式に右から左結合があります。1 番目のオペランドが整数型またはポインター型でなければなりません。次の規則は2 番目と 3 番目の式に適用されます :

  • 両方の式が同じ型である場合結果はその型です。

  • 両方の式が操作または列挙体である共通型に変換するには通常の算術変換 (算術変換 で説明されている) です。

  • 両方の式がポインター型であるかまたは 1 のポインター型およびで他方が 0 になる定数式の共通型に変換するにはポインター変換が実行されます。

  • 両方の式が参照型である場合共通型に変換するには参照変換が実行されます。

  • 両方の式が型の無効な場合共通型は型が無効です。

  • 両方の式が特定のクラス型が共通型はそのクラス型です。

上記の 2 番目と 3 番目のオペランドの任意の組み合わせが無効です。結果の型は共通型であり2 番目と 3 番目のオペランドが同じ型であり両方の左辺値の場合は左辺値です。

使用例

// expre_Expressions_with_the_Conditional_Operator.cpp
// compile with: /EHsc
// Demonstrate conditional operator
#include <iostream>
using namespace std;
int main() {
   int i = 1, j = 2;
   cout << ( i > j ? i : j ) << " is greater." << endl;
}

参照

関連項目

C++ の演算子

演算子の優先順位と結合規則

概念

条件式の演算子