int x;
(rand() % 100) + 1 = x;
它一直在说:
表达式应为可修改的左值
答案 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;
而且,错误应该消失了。