我们说过一个变量分为两个部分,左值和右值
左值代表变量内存区域
右值代码内存区域所存的值
我们平时说的引用是左值引用,c++11引入了右值引用
右值引用就是绑定到右值上的引用。用&&进行定义
类型 &&引用名 = 表达式
我们看几个例子了解一下
double r = 10; double &r1 = r;//正确,左值引用 double &r2 = r + 10;//错误,左值引用右边必须是变量,不可以是表达式 double &&r3 = r;//错误,右值引用右边必须是常量或者表达式 double &&r4 = r + 10;//正确
右值引用的特点是只能绑定到即将销毁的对象上,如常量或表达式
#include<iostream> using namespace std; int main() { int x = 10; int &r = x; int &&rx = x + 10*3; cout << "x = " << x << "\t rx = " << rx << endl; x = 20; cout << "x = " << x << "\t rx = " << rx << endl; int y = rx; cout << "y = " << y << endl; return 0; }
原文:https://www.cnblogs.com/mch5201314/p/11685153.html