这是我读到的关于左值的几个定义
可与 & 运算符一起使用的表达式。即如果 &(expression) 不是错误,则表达式是左值
导致对象不是临时的表达式
左值表达式可用于 = 运算符的 RHS 和 LHS
右值表达式只能在 RHS 上使用
如有错误请指正
这是问题
我读到 ++x 是一个左值,而 x++ 是一个右值
int i = 0;
printf("%p",(void*)&++i);
如果是这样,为什么这是一个错误?
如果左值表达式可以在 lhs 上使用
int i = 0;
++i = 10;
为什么我不能使用上面的语句??以上都导致错误
更新:上述两个语句在 C++ 中都很好