Bedingungsoperator
Nach oben zu Binäre Operatoren - Index
Syntax
logischer OR-Ausdruck ?: Bedingungs-Ausdruck
Bemerkungen
Der Bedingungsoperator ?: ist ein dreiteiliger Operator.
Im Ausdruck E1 ? E2 : E3 wird E1 zuerst ausgewertet. Wenn sein Wert true ist, so wird danach E2 ausgewertet und E3 ignoriert. Wenn E1 false ergibt, so wird E3 ausgewertet und E2 ignoriert.
Das Ergebnis von E1 ? E2 : E3 ist entweder der Wert von E2 oder von E3, abhängig davon, welcher dieser Werte ausgewertet wurde.
E1 muss ein Ausdruck von skalarem Typ sein. E2 und E3 müssen einer der folgenden Regeln entsprechen:
- Beide sind arithmetische Typen. In diesem Fall unterliegen
E2undE3den arithmetischen Standardkonvertierungen und das Ergebnis entspricht dem üblichen Ergebnistyp dieser Konvertierungen. - Beide Operanden sind kompatible Struktur- oder Varianten-Typen. Das Ergebnis ist vom Struktur- oder Varianten-Typ von
E2undE3. - Beide Operanden sind vom Typ void. Das Ergebnis ist vom Typ void.
- Beide Operanden sind Zeiger auf qualifizierte oder unqualifizierte kompatible Typen. Als Ergebnis erhalten Sie einen Typ, der ein Zeiger auf einen Typ ist, der alle Typqualifizierer der Typen besitzt, auf die beide Operanden zeigen.
- Einer der Operanden ist ein Zeiger, der andere eine Nullzeiger-Konstante. Als Ergebnis erhalten Sie einen Typ, der ein Zeiger auf einen Typ ist, der alle Typqualifizierer der Typen besitzt, auf die beide Operanden zeigen.
- Ein Operand ist ein Zeiger auf ein Objekt oder auf einen unvollständigen Typ, und der jeweils andere ist ein Zeiger auf eine qualifizierte oder unqualifizierte Version des Typs void. Als Ergebnis erhalten Sie einee Nullzeiger-Konstante auf den Operanden void.