Komma-Operator
-
Hi,
ich hätte da Mal ne kurze Frage:
ist sowas hier ANSI C++?
int a=2;
int b=3;if(a,b)
Und wenn es Standard ist, wie wird if(a,b) ausgewertet?
-
Und wenn es Standard ist, wie wird if(a,b) ausgewertet?
Der Kommaoperator wird von links nach rechts ausgewertet, das Ergebnis des Ausdrucks ist das Ergebnis des am weitesten rechts stehenden Teilausdrucks.
In diesem Fall also erst a und dann b ausgewertet, wobei das Ergebnis der Wert von b ist und damit 3.
Da die Auswertung von a keine Seiteneffekte hat und da das Ergebnis ignoriert wird, ist der gesamte Ausdruck in diesem Fall äquivalent zu:
if (b)