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++;[/CODE]
Comments
Mula
Contributions on this page: 1
View profileIch versuchs mal zu zerlegen
x-- //x = 1 , wird nach der Operation auf 0 dekrementiert
+ -x++ //x = 0 ,also: + -0, und hat nach der Operation wieder den Wert 1
n = 1 + (-0) = 1
x = 1
ChrissiLLB
Contributions on this page: 1
View profileNein, 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
el_juliano
Contributions on this page: 2
View profileok jetzt hab ichs verstanden. thx