Rechenvorschrift bei Zuweisung

Gast #5852577
Lesenswert?

Guten Morgen!

Eine Frage zu der einfachen Zeile Code:
1
x += y + z;
Ist offensichtlich nicht das selbe, wie
1
x += (y + z);

Bei mir ist x=2, y = 0 und z = 24 und beim ersten erhalte ich 0 für x 
und nicht wie erwartet 26.

Die Frage ist nun:
Was macht der Compiler/Controller mit dem "+z", wenn er nur "x += y" 
rechnet?

Danke für die Hilfe.

Grüße
Chris
#5852615
Lesenswert?

Christian schrieb:
> Eine Frage zu der einfachen Zeile Code:
>
1
x += y + z;
> Ist offensichtlich nicht das selbe, wie
>
1
x += (y + z);

Es ist in C/C++ dasselbe, ob offensichtlich oder nicht. Wenn das reale 
Ergebnis es nicht ist, dann nicht aufgrund der Sprache.

Der einzige Operator, bei es anders aussieht, ist
  x += y, z
denn das ist
  (x += y), z
und damit nicht
  x += (y, z)
Gast #5852901
Lesenswert?

Christian schrieb:
> Bei mir ist x=2, y = 0 und z = 24 und beim ersten erhalte ich 0 für x
> und nicht wie erwartet 26.
Wenn das so ist, was bedeutet dann

> Die Frage ist nun:
> Was macht der Compiler/Controller mit dem "+z", wenn er nur "x += y"
> rechnet?
x+=y würde doch 2 und nicht 0 ergeben.

Also Code posten.
Gast #5852913
Lesenswert?

Also nochmal an den TO:

In C kommt bei beiden deiner Ausdrücke das Selbe raus. Der Fehler muss 
bei dir liegen oder du verschweigst uns (unbeabsichtigt) wichtige 
Details.

Bitte den ganzen Quellcode in der aktuellen Version zeigen + Angabe des 
Ziels (Mikrocontroller, Linux, etc..)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren