0 Daumen
2,4k Aufrufe

x=1;

y=++x;

-->x=2

--->y=2

-----------------------

x=1;

y=x++;

-->x=2

-->y=1

Ich komme da leider durcheinader, was x und y anschließend ist.

Avatar von

1 Antwort

+1 Daumen
 
Beste Antwort
Ich komme da leider durcheinader, was x und y anschließend ist.

So, wie Du es in Deiner Frage beschrieben hast, ist es richtig.

Die Variable x wird auf jeden Fall erhöht (durch den Inkrement-Operator). Allerdings werden hier zwei verschiedene Inkrement-Operatoren genutzt: Der Präinkrement-Operator ++x und der Postinkement-Operator x++.

++x erhöht erst den Wert der Variablen x und nimmt dann die Zuweisung an y vor (deshalb steht dort bei y eine 2).

x++ weist zunächst den aktuellen Wert von x (1) y zu und erst dann wird x erhöht (deshalb steht dort bei y eine 1).

Avatar von

Danke.

Wieso ist aber x=2?

Wenn x um ein erhöht wird, dann hat man ja eine neue Variable im Grunde...

Wenn x um ein erhöht wird, dann hat man ja eine neue Variable im Grunde

Nein! Erst wenn Du die Variable redefinieren würdest, was im vorliegenden Scope ohnehin nicht möglich ist, hättest Du eine neue Variable.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
+1 Daumen
2 Antworten
0 Daumen
1 Antwort

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community