Kommaoperator:,
Ermöglicht das Gruppieren von zwei Anweisungen, in denen Sie erwartet wird.
expression , expression
Hinweise
Der Operator Komma weist eine Assoziativität von links nach rechts auf.Zwei Ausdrücke, die durch ein Komma getrennt werden, sind ausgewertetes von links nach rechts.Der linke Operand wird immer ausgewertet, und alle Nebeneffekte abgeschlossen werden, bevor der rechte Operand ausgewertet wird.
Kommas als Trennzeichen in mehreren Kontexten, z. B. Listen Funktionsargument verwendet werden.Verwirren Sie die Verwendung des Kommas als Trennzeichen bei ihrer Verwendung als Operator. zwei verwendet sind vollkommen unterschiedlich.
Betrachten Sie den Ausdruck
e1 , e2
Der Typ und Wert des Ausdrucks den Typ sind und der Wert von e2. Das Ergebnis des Auswertens von e1 wird verworfen.Das Ergebnis ist ein l-Wert, wenn der rechte Operand ein l-Wert handelt.
Wenn das Komma als Trennzeichen (zum Beispiel normalerweise in den tatsächlich auf Funktionen oder Aggregats initialisierern) verwendet wird, der Operator Komma und ihre Operanden müssen in Klammern eingeschlossen werden.Beispiele:
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
Im obigen Funktionsaufruf zu func_one werden drei Argumente, durch Trennzeichen getrennt, übergeben: x, y + 2und z.Geben Sie im Funktionsaufruf zu erzwingen, func_twoKlammern der Compiler beim ersten Komma als Sequenziell Auswertung Operator zu interpretieren.Dieser Funktionsaufruf führt zwei Argumente func_two.Das erste Argument ist das Ergebnis der Auswertung Sequenziell (x--, y + 2)Vorgangs, der den Wert und Typ des Ausdrucks y + 2verfügt. das zweite Argument ist z.
Beispiel
// cpp_comma_operator.cpp
#include <stdio.h>
int main () {
int i = 10, b = 20, c= 30;
i = b, c;
printf("%i\n", i);
i = (b, c);
printf("%i\n", i);
}
Siehe auch
Referenz
Ausdrücke mit binären Operatoren
Operatorrangfolge und Assoziativität