Daniel L. schrieb:
> lvalue required as left operand of
> assignment.
Daniel L. schrieb:
> Bei mir tritt dieser Fehler auf Error lvalue required as left operand of
> assignment.
manchmal reicht es auch einfach aus, mal den Text auf deutsch zu
übersetzten.
Links-Wert benötigt als linker Operand einer Zuweisung.
Nimm mal folgendes Zuweisungs-Beispiel:
Merkel = 'doof'
dieses ist eine Zuweisung. Der Variable "Merkel" wird der Wert "doof"
zugewiesen.
Die Zuweisung besteht aus einem Links-Operanden (der Variable Merkel),
einem rechts-Operanden (dem Wert "doof"), und einem Operator (dem ")
Aber warum nicht
'doof' = Merkel ?
Nun, das ist halt so in C vorgegeben, daß links das steht, was
irgendeine Eigenschaft annehmen soll.
Zwischen-Hinweis: Wir reden hier nicht über Typen-Validierung. Man
könnte ja durchaus auch
Merkel = 'toll'
zugewiesen werden, aber das könnte ja möglicherweise zu einem
Wertebereichs-Konflikt führen, da die Variable Merkel diese
Werteausprägung nicht annehmen kann. Auch sowas mag der Compiler prüfen,
aber das war ja nicht das was er angemackert hat.
um nun zu deiner Stolper-Zeile zu kommen:
> z1 + z2 = sum; // bei all diesen rechnungen tritt der Fehler auf
rechts (als R-Value) steht SUM. Also wird dem links vom "=" dasjenige
zugewiesen werden, was rechts steht (der Wert der Variable sum)
aber was steht links? Antwort: Die Summe zweier Variablen, die durchaus
für sich Werte enthalten können. Allerdings wird das Ergebnis von z1+z2
nur temporär vorgehalten, und nach der Berchnung wieder weggeworfen.
Da ist eigentlich das was der Compiler anmeckert: Er beklagt, daß er
einer temporären Variablen einen Wert zuweisen soll, die nach der
Zuweisung wieder weggeworfen wird. er hätte aber lieber etwas lang
lebigeres als eine temporäre Variable.