条件演算子
二項演算子:インデックス への移動
構文
論理 OR 式 ? 式 : 条件式
解説
条件演算子 ?: は,三項演算子です。
式 E1 ? E2 : E3
において,最初に E1
が評価され,その値が true なら E2
が評価され,E3
は無視されます。E1
の値が false なら E3
が評価され,E2
は無視されます。
E1 ? E2 : E3
の結果は,E2
と E3
のどちらかの(評価された方の)値になります。
E1
はスカラー式でなければなりません。E2
と E3
は,以下の規則のいずれか 1 つを満たさなければなりません。
- ともに算術型です。
E2
とE3
は通常の算術変換に従い,それによって結果の型が決まります。 - ともに互換の構造体型または共用体型です。結果の型は,
E2
とE3
の構造体型あるいは共用体型になります。 - ともに void 型です。結果は void 型になります。
- ともに限定子の付いた,あるいは限定子の付いていない互換の型を指すポインタ型です。結果の型は,ポインタの指す型,つまり両方のオペランドにより指し示される型におけるすべての型限定子が付いた型になります。
- 一方がポインタ型のオペランド,もう一方がヌルポインタ定数です。結果の型は,ポインタの指す型,つまり両方のオペランドにより指し示される型におけるすべての型限定子が付いた型になります。
- 一方がオブジェクトあるいは不完全型を指すポインタ型,もう一方が限定子の付いた,あるいは付いていない void 型を指すポインタ型です。結果の型は void へのポインタでないオペランドの型になります。