Bedingungsoperator ( ? : ) Der Bedingungsoperator ?: ist ein ternrer Operator. Syntax: logischer-OR-ausdr ? ausdr : bedingter-ausdr Im Ausdruck E1 ? E2 : E3 mu der Operand E1 ein skalarer Typ sein. Die Operanden E2 und E3 mssen einer der folgenden Regeln entsprechen: 1. Beide sind arithmetische Typen. In diesem Fall unterliegen E2 und E3 den blichen arithmetischen Konvertierungen und das Ergebnis entspricht dem blichen Ergebnistyp dieser Konvertierungen. 2. Beide Operanden sind kompatible Strukturen oder Varianten. Das Ergebnis ist vom Struktur- oder Variantentyp von E2 und E3. 3. Beide Operanden sind vom Typ void. Das Ergebnis ist vom Typ void. 4. Beide Operanden sind Zeiger auf kompatible Typen. Das Ergebnis ist ein Zeiger auf einen zu beiden Operanden kompatiblen Typ. 5. Einer der Operanden ist ein Zeiger, der andere eine Null-Zeiger-Konstante. Das Ergebnis ist ein Zeiger auf einen zu beiden Operanden kompatiblen Typ. 6. Einer der Operanden ist ein Zeiger auf ein Objekt oder auf einen unvollstndigen Typ, der andere ist ein Zeiger auf void. Das Ergebnis ist vom Typ des Operanden, der nicht auf void zeigt. In allen Fllen wird E1 zuerst ausgewertet. Wenn sein Wert ungleich Null (true) ist, wird E2 ausgewertet und E3 ignoriert. Falls E1 Null (false) ist, wird E3 ausgewertet und E2 ignoriert. Das Ergebnis von E1 ? E2 : E3 ist entweder der Wert von E2 oder von E3, abhngig davon, welcher dieser Werte ausgewerte wurde. Siehe auch: Operatoren