“表达式必须是可修改的左值”是什么意思?

时间:2019-12-25 14:37:25

标签: c++ visual-c++

int x;
(rand() % 100) + 1 = x;

它一直在说:

  

表达式应为可修改的左值

3 个答案:

答案 0 :(得分:2)

=的左右操作数不可互换。

被分配给 的是左操作数,因此它必须是可分配的。

鉴于int x;x是可分配的(“可修改的左值”),而x + 42不是可分配的(右值)。

答案 1 :(得分:2)

这意味着您在赋值运算符(=)的每一面都放错了地方。左边的表达式应该是您可以为其分配值的内容(“ lvalue”中的“ l”代表“ left”),而右边的表达式应该计算出您想要分配的值。

尝试

x = (rand() % 100) + 1;

相反。

答案 2 :(得分:1)

左值始终必须是可更改/可修改的。 所以你不能做:

int a ;
3 = a ; 

这意味着您正在尝试将3更改为a,这是不可能的,因为3是一个常数。

类似地, 这样做:

x = (rand() % 100) + 1;

而且,错误应该消失了。

相关问题