L-Value und R-Value kurze Erklärung??
-
Hallo,
kann mir jemand in kurzen einfach Wörtern erklären was ein L-Value und was ein R-Value ist bzw. was das überhaupt bedeutet? Ich komme aus den Erklärungen in den Büchern net zurecht.
Schonmal danke.
-
Hi,
Ein L-Wert ist ein Wert, der etwas zugewiesen bekommen kann.
(a + 10) = 10;a + 10 ist hier z.B. kein L-Wert, a alleine schon.
Na ja, blödes Beispiel, aber egal.mfG eisflamme
-
streamilein schrieb:
Hallo,
kann mir jemand in kurzen einfach Wörtern erklären was ein L-Value und was ein R-Value ist bzw. was das überhaupt bedeutet? Ich komme aus den Erklärungen in den Büchern net zurecht.
Schonmal danke.
bin ned 100% sicher
:
Ausdruck = Ausdruck // Eine normale C++ Anweisung (Zuordnung)
L-Value = R-Value // Der rechte Ausdruck ist der R-Value, der linke der L-ValueDer Ausdruck der auf der rechten Seite des Zuweisungsoperators steht, muss dem linken Ausruck zuweisbar sein, damit der Compiler zufrieden ist. Falls der R-Value aber nicht dem L-Value zuweisbar ist, dann ist der Compiler nicht zufrieden (evt. Casting nötig).
-
danke das brachte mich schon mehr wie die erklärungen aus den lehrbüchern.
char buchstaben[3] = "abc"; // Fehler!(kein Platz für '\0')
wieso das? bei [3] ist doch Platz für 4 (0-3) oder net?
-
Hi,
nnnnnnnnnnnnä.
\0 ist das Teil, das den String beendet und das braucht auch Platz.char buchstaben[4] = "abc"; // schööööön char buchstaben[] = "abc"; // schöner const char buchstaben[] = "abc"; // am schönsten
MfG Eisflamme
-
ja schon aber ich dachte bei
char buchstaben[3] steht in
[0] a;
[1] b;
[2] c;
[3] \0;oder was steht da jeweils drin?
-
streamilein schrieb:
oder was steht da jeweils drin?
Es steht schon das richtige drin, aber
char foo[3];
ist ein array mit 3 elementen (0, 1, 2)
-
Genau das sind typische Anfängerfehler. Wenn man sich mal daran gewöhnt hat das alles bei 0 beginnt glaubt man dies auch bei
char[3];
-
Und wenn man beachtet, das die 3 nicht den höchsten Bezeichner, sondern die Menge angibt