Die Einschränkungen des ternären Operators in C
Unter Einschränkungen verstehen wir hier Anforderungen, welche die Sprachnorm zusätzlich zu den Syntaxregeln stellt.
Der Typ des ersten Operanden
Der Typ des ersten Operanden kann jeder der bisher im Kurs behandelten Datentypen (außer »void«) sein, jedoch ist in der Praxis von den bisher vorgestellten Datentypen meist nur der Typ »int« sinnvoll.
Der Typ der weiteren Operanden
Die beiden anderen Operanden sollten entweder beide einen numerischen Typ (wie »int« oder »double«) haben oder beide Zeichenfolgen (»char *«) sein oder beide den Typ »void« haben.
- Beispiele für ternäre Ausdrücke mit zwei numerischen Operanden nach dem Fragezeichen
0 ? 1 : 2
0 ? 1.1 : 2
0 ? 1 : 2.20 ? 1.1 : 2.2
- Beispiel für einen ternären Ausdruck mit zwei Zeichenfolgen nach dem Fragezeichen
0 ? "a" : "b"
- Beispiel für einen ternären Ausdruck mit zwei void-Ausdrücken nach dem Fragezeichen
#include <stdlib.h>
- …
0 ? srand( 2 ): srand( 3 )
Übungsfragen
? Übungsfrage
Welcher der folgenden Ausdrücke erfüllt alle Typanforderungen des ternären Operators?
- »0 ? 1 : 2«
- »0 ? 1 : "2"«
- »"0" ? "1" : "2"«
- »"0" ? 1. : 2«