如何快速判断一个值是左值还是右值呢
- 如果一个表达式有名称(变量、函数、对象等),那么它通常是一个左值。
- 可以对左值进行取地址操作(&运算符)。
- 如果一个表达式是临时生成的、没有名称的,通常是一个右值。
- 不能对右值进行取地址操作。
![如何快速判断一个值是左值还是右值呢 图片[1]-如何快速判断一个值是左值还是右值呢-不念博客](https://img.mryunwei.com/uploads/2023/12/20231225024644431.jpg)
例如:
int x = 10; // x 是左值
int y = x; // x 是左值,y 是左值
int z = x + y; // x + y 是右值
int* ptr = &x; // &x 是左值,ptr 是左值
例如:
int x = 10; // x 是左值
int y = x; // x 是左值,y 是左值
int z = x + y; // x + y 是右值
int* ptr = &x; // &x 是左值,ptr 是左值