arbeiten Ich habe SO für eine Weile als eine Referenz verwendet, aber nie zuvor eine Frage gestellt. Ich bin derzeit in einem College C++ - Klasse und auch lesen Programmierung: Principles and Practice von Bjarne Stroutstrup nur für mich selbst, wie ich eine Antwort auf eine Frage hier sah, die wirklich empfohlen.Einige Verwirrung mit, wie Kommas in C/C++
Wir decken momentan die Operatoren in meiner Klasse ab, und ich kann mich einfach nicht vorstellen, wie der Komma-Operator in einer Anweisung arbeitet. Ein Beispiel ist eine Beispielfrage für den Online-Teil der Klasse, die ich falsch verstanden habe, selbst wenn ich ein C-Programm schreibe und GDB verwende, um das Ergebnis zu erhalten. Die Frage lautet:
Angenommen, x == 16 vor dem folgenden Ausdruck, was ist der Wert des folgenden Ausdrucks (nicht unbedingt der Wert von x)?
x ++ ++ x, x + = x
Ich bin nicht daran interessiert, die richtige Antwort, so viel wie, wie die richtige Antwort zu bekommen. Ich habe ein paar Antworten auf ähnliche Fragen gelesen, wie diese here, aber es scheint, als ob ich vermisse, wie dies gilt, wenn es eigentlich keinen Assignment-Operator gibt. Ist dies das gleiche wie zu sagen
int y = (x++, ++x, x+=x);
oder
int y = x++, ++x, x+=x;
oder keines von beiden? Könnte jemand bitte erklären, wie der Komma-Operator arbeitet, speziell in Bezug auf eine Aussage ohne Auftrag?
@SouravGhosh Nein, der Komma-Operator führt einen Sequenzpunkt zwischen seinen Operanden ein. Die Ausdrücke werden von links nach rechts sequenziert. – juanchopanza
@KeithThompson Danke, Sir, dass Sie mich korrigiert haben. –
@juanchopanza Sir, irgendwie habe ich Kapitel 6.5.17 vermisst. Das tut mir leid. Ich stehe korrigiert. –