Table of Contents

C++左值和右值


区别

C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值。左值一般在内存中,右值一般在内存或CPU寄存器中。

左值引用和右值引用

左值引用就是普通的引用,右值引用见这里右值引用

int x = 0;
int &rx = x; // 普通引用,也就是左值引用