C++ 中的左值(Lvalues)和右值(Rvalues)
时间: 2024-01-19 20:04:38 浏览: 102
在C++中,左值(Lvalues)是指可以出现在赋值语句左边的表达式,即可以被赋值的表达式。右值(Rvalues)则是指不可以出现在赋值语句左边,只能作为赋值语句右边的表达式。
例如,对于变量x,它既可以作为左值也可以作为右值:
```
int x = 10; // x是左值
int y = x; // x是右值,因为它是赋值语句右边的表达式
```
又例如,对于字面常量10,它只能作为右值出现:
```
int y = 10; // 10是右值
int z = x + 10; // 10是右值
```
左值表示的是一个内存位置,可以被修改,而右值则是一个临时的值,不能被修改。在C++11中,引入了右值引用(Rvalue references),可以用来绑定右值,从而实现移动语义和完美转发等功能。
阅读全文