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

Antworten auf die Frage(5)

Ihre Antwort auf die Frage