Condição para lvalues e rvalues em C
Aqui estão algumas definições que li sobre lvalues
Expressões que podem ser usadas com o & operador. ou seja, se & (expressão) não for um erro, a expressão é um lvalue
Expressão que resulta em objetos que não são temporários
Expressões de lvalue podem ser usadas em ambos RHS e LHS de = operator
Expressões rvalue podem ser usadas apenas no RHS
Por favor corrija se errado
Aqui está a pergunta
Eu li ++ x é um lvalue e x ++ é um rvalue
int i = 0;
printf("%p",(void*)&++i);
Em caso afirmativo, por que isso é um erro?
Se expressões lvalue podem ser usadas em lhs
int i = 0;
++i = 10;
Por que não posso usar a declaração acima? Ambos acima estão resultando em erros
Atualização: Ambas as instruções acima estão bem em C ++