int ival = (ia != 0)
? ix = get_value(), ia[index] = ix
: ia = new int[sz], ia[index] = 0;
< /code>
Im folgenden Beispiel ist jede Seite des bedingten Operators ein Komma -Ausdruck.
Der Wert des ersten Kommas -Ausdrucks ist ix; Der Wert des zweiten ist 0.
Publisher: Addison Wesley Stanley B. Lippman Josée Lajoie Dritte Ausgabe 26. März 1998 < /p>
< /blockquote>
Was ist wirklich los? Der ternäre Operator?: Hat höhere Vorrang als der Komma -Betreiber. Daher endet der gesamte ternäre Ausdruck bei IA [index] = ix. Alles nach dem nächsten Komma (IA [Index] = 0) ist nicht mehr Teil des ternären Ausdrucks. Das sieht der Compiler: < /p>
int ival = ((ia != 0)
? (ix = get_value(), ia[index] = ix)
: (ia = new int[sz])) ,
ia[index] = 0;
< /code>
Ich habe einen Fehler im Buch C ++ - Primer gefunden. Oder scheint es einfach so? Bitte überprüfen Sie, ob dies korrekt ist.
Jede Seite des bedingten Operators ist ein Komma -Ausdruck ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Jasper Report PDF Das erste Zeichen einer Zeile ist ein Komma in einem Absatz
by Anonymous » » in Java - 0 Replies
- 1 Views
-
Last post by Anonymous
-
-
-
Jasper Report PDF Das erste Zeichen einer Zeile ist ein Komma in einem Absatz
by Anonymous » » in Java - 0 Replies
- 0 Views
-
Last post by Anonymous
-
Mobile version