"expression must be a modifiable lvalue"是什么意思?

What does "expression must be a modifiable lvalue" mean?

本文关键字:是什么 意思 lvalue expression must be modifiable      更新时间:2023-10-16
int x;
(rand() % 100) + 1 = x;

它一直在说:

表达式应为可修改的左值

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

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

给定int x;x是可赋值的("可修改的左值"(,但x + 42不是(右值(。

这意味着你在赋值运算符(=(的每一侧都放了错误的东西。左边的表达式应该是你可以赋值的东西("lvalue"中的"l"代表"左"(,右边的表达式应该计算你要赋值的值。

尝试

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

相反。

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

int a ;
3 = a ; 

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

所以同样, 这样做:

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

而且,错误应该消失了。