Bedingung für lWerte und rWerte in C
Hier sind die wenigen Definitionen, die ich über I-Werte gelesen habe
Ausdrücke, die mit & operator verwendet werden können. Wenn & (Ausdruck) kein Fehler ist, ist der Ausdruck ein Wert
Ausdruck, der zu Objekten führt, die nicht temporär sind
Wertausdrücke können sowohl für RHS als auch für LHS des Operators = verwendet werden
rvalue-Ausdrücke können nur für RHS verwendet werden
Bitte korrigieren wenn falsch
Hier ist die Frage
Ich lese ++ x ist ein lWert und x ++ ist ein rWert
int i = 0;
printf("%p",(void*)&++i);
Wenn ja, warum ist das ein Fehler?
Wenn lvalue-Ausdrücke für lhs verwendet werden können
int i = 0;
++i = 10;
Warum kann ich die obige Anweisung nicht verwenden? Beides führt zu Fehlern
Update: Beide obigen Anweisungen sind in C ++ in Ordnung