0 Daumen
41 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.

Gefragt von

1 Antwort

+1 Punkt
 
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).

Beantwortet von 7,0 k

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

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...