Bedingungsoperator

Aus RAD Studio
Wechseln zu: Navigation, Suche

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:

  1. Beide sind arithmetische Typen. In diesem Fall unterliegen E2 und E3 den arithmetischen Standardkonvertierungen und das Ergebnis entspricht dem üblichen Ergebnistyp dieser Konvertierungen.
  2. Beide Operanden sind kompatible Struktur- oder Varianten-Typen. Das Ergebnis ist vom Struktur- oder Varianten-Typ von E2 und E3.
  3. Beide Operanden sind vom Typ void. Das Ergebnis ist vom Typ void.
  4. 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.
  5. 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.
  6. 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.