c++ 右值引用

左值和右值

左值可以理解为可以取地址的对象,右值指的除左值外的值,这个地方不必过于纠结

左值引用

就是常见的 &+变量名

右值引用

当引用一个变量时可以使用

int A=10;
int & a=A;//这里就是左引用

但是有时我们需要引用一个立即数怎么办

int &a=10;//error
const int &a=10;//right,这里是常引用,这里是把这个10临时保存到内存中,随着程序到期后一起销毁

当c++加入右值引用后,可以把上面的操作变成

int && a=10;

右值引用可以进行读写操作,而常引用只能进行读操作。
右值引用的存在并不是为了取代左值引用,而是充分利用右值(特别是临时对象)的构造来减少对象构造和析构操作以达到提高效率的目的。

左值引用类似于指针引用,不过编译器替我们简易实现了,左值在栈中是有真实存在的,而

posted @ 2023-10-10 21:36  依然依然的a  阅读(10)  评论(0编辑  收藏  举报