Inkrementoperator

Dr Franke Ghostwriter
ich versteh irgendwie nicht warum bei dem Quelltext x = 1 & n = 1 rauskommt. Kann mir vielleicht einer erklären warum das so ist? x ist klar, erst wird es auf 0 und dann wieder auf 1 gesetzt. Aber bei n müsste doch n = 1 + -1 rauskommen oder? ++ und -- wirken ja noch ned bei der Zuweisung wenn sie hinter der Variable stehen.

Code:
int n = 0;
int x = 1;
       
n = x-- + -x++;
 
++ und -- wirken ja noch ned bei der Zuweisung wenn sie hinter der Variable stehen.

Nein, nein. Es ist so: Die Postinkrement/Postdekrement Variable "liefert" zuerst seinen (nicht inkrementierten/dekrementierten) Wert in den Operator "ab", dessen Operand die Variable ist und danach wird die Varable inkrementiert/dekrementiert.

Bei n = x-- + -x++ ist der Operator das + und x-- bzw. -x++ sind die Operanden.

Der Wert von x (= 1) geht also zunächst als linker Summand in den + Operator ein, dann wird x dekrementiert (auf x = 0), dann geht der negative Wert von x (= 0) als rechter Summand in den + Operator ein, 1 + 0, dann wird der Wert dieser + Operation der Variablen n zugewiesen (n = 1) und x wird inkrementiert (auf x = 1).

Liebe Grüße
 
Oben