左操作数必须为左值怎么解决
时间: 2023-12-10 08:03:07 浏览: 146
C++中的delete不会将操作数置0
左值是指可以出现在赋值语句左边的表达式,而右值则不能被赋值。在 C++ 中,左值是指具有内存地址的表达式,而右值则是指不具有内存地址的表达式。如果左操作数必须为左值,那么你可以将右值的结果存储到一个变量中,然后再将这个变量作为左操作数。例如:
```c++
int a = 1;
int b = 2;
int c = a + b; // 可以正常执行
(a + b) = c; // 错误:左操作数必须为左值
int temp = a + b;
temp = c; // 可以正常执行
```
在上面的例子中,由于 `(a + b)` 是一个右值表达式,不能作为左操作数,所以我们需要将它的结果存储到 `temp` 变量中。然后,`temp` 可以作为左操作数,因为它是一个具有内存地址的表达式。
阅读全文