Nach dem Operator Präzedenz , Komma - Operator hat niedrigere Priorität als operator=, so x = 2,3;entspricht (x = 2),3;. (Die Priorität des Operators bestimmt, wie der Operator an seine Argumente gebunden wird, je nach Priorität enger oder lockerer als andere Operatoren.)
Beachten Sie, dass der Komma-Ausdruck (x = 2),3hier nicht steht 2,3. x = 2wird zuerst ausgewertet (und seine Nebenwirkungen sind abgeschlossen), dann wird das Ergebnis verworfen und dann 3ausgewertet (es tut tatsächlich nichts). Deshalb ist der Wert xist 2. Beachten Sie, dass dies 3das Ergebnis des gesamten Kommaausdrucks ist (dh x = 2,3), für dessen Zuweisung er nicht verwendet wird x. (Ändern Sie es in x = (2,3);, xwird zugewiesen mit 3.)
Für return 2,3;ist das Komma Ausdruck 2,3, 2bewertet wird , dann wird das Ergebnis verworfen und dann 3ausgewertet wird und als das Ergebnis des gesamten Komma Ausdruck zurückgegeben, der durch die zurückgeführt wird return - Anweisung später.
Zusätzliche Informationen zu Ausdrücken und Aussagen
Ein Ausdruck ist eine Folge von Operatoren und ihren Operanden, die eine Berechnung angibt.
x = 2,3;ist Ausdruck Aussage , x = 2,3ist der Ausdruck hier.
Ein Ausdruck gefolgt von einem Semikolon ist eine Aussage.
Syntax: attr(optional) expression(optional) ; (1)
return 2,3;ist die Sprunganweisung ( return-Anweisung ), 2,3ist hier der Ausdruck.
Syntax: attr(optional) return expression(optional) ; (1)