Условие для значений и значений в С
Вот несколько определений, которые я прочитал о lvalues
Выражения, которые можно использовать с оператором &. Т.е. если & (выражение) не является ошибкой, то выражение является lvalue
Выражение, которое приводит к объектам, которые не являются временными
Выражения lvalue могут использоваться как в RHS, так и в LHS оператора =
Выражения rvalue могут использоваться только в RHS
Пожалуйста, исправьте, если ошиблись
Вот вопрос
Я читаю ++ х это lvalue и х ++ это rvalue
int i = 0;
printf("%p",(void*)&++i);
Если так, то почему это ошибка?
Если выражения lvalue могут использоваться на lhs
int i = 0;
++i = 10;
Почему я не могу использовать приведенное выше утверждение ?? Оба приведенных выше приводят к ошибкам
Обновление: оба вышеупомянутых утверждения хороши в C ++