Die Typermittlung beim ternären Operator in C
Syntax
Hier geben wir das schon gezeigte Syntaxdiagramm erneut wieder.
- Syntaxdiagramm (vereinfacht)
Ausdruck
.----------. .-. .----------. .-. .----------.
--->| Ausdruck |--->( ? )-->| Ausdruck |--->( : )-->| Ausdruck |--->
'----------' '-' '----------' '-' '----------'
Typergebnis
Wenn der zweite und dritte Operand beide numerischen Typ haben, ist der Typ des gesamten Ausdrucks derselbe Typ, wie ihn die Summe jener beiden Operanden hätte.
- Beispiele für ternäre Ausdrücke mit dem Typ »int«
0 ? 1 : 2
- Beispiele für ternäre Ausdrücke mit dem Typ »double«
0 ? 1.1 : 2
0 ? 1 : 2.20 ? 1.1 : 2.2
Wenn der zweite und dritte Operand beide Zeichenfolgen (Typ »char *«) sind, so ist der Typ des gesamten Ausdrucks ebenfalls »char *«.
- Beispiele für ternäre Ausdrücke mit dem Typ »char *«
0 ? "a" : "b"
Übungsfragen
? Übungsfrage
Welchen Typ haben die folgenden ternären Ausdrücke jeweils?
- »0 ? 1 : 2«
- »0 ? "1" : "2"«
- »"0" ? 1. : 2«