左值
什么是左值
左值就是放在赋值号(=等号这种)左边的值 也就意味着左值是可以被赋值 被修改的 要不然放在等号左边干嘛呢 所以const变量是肯定不能放左值的
int a;
a = 2;//a就作为左值 2是右值
int * b;
b = a;//此时b指针是左值 a变量就作为了右值
右值
什么是右值
左值就是放在赋值号(=等号这种)右边的值 同样意味着这个值可以是不能被赋值或者改变的 一般常量或者变量都可以作为右值
左右值区别
- 左值可以寻址,而右值不可以。
- 左值可以被赋值,右值不可以被赋值,可以用来给左值赋值。
- 左值可变,右值不可变(仅对基础类型适用,用户自定义类型右值引用可以通过成员函数改变)。