- 左值引用主要用于引用内存
- 右值引用主要用于引用寄存器
代码示例
1 #include <iostream> 2 using namespace std; 3 4 void change(int &rnum)//变量名别名 5 { 6 rnum = 111; 7 } 8 9 void main() 10 { 11 //左值引用 12 int num = 10;//num左值,内存实体 13 int &x = num; 14 int &lnum(num);//变量的别名 15 x = 8; 16 change(num); 17 cout << num << endl; 18 19 //右值引用,快速备份,编译器自动回收 20 int &&rnum(num + 3); 21 cout << (void*)rnum << endl; 22 23 //常规操作指向数组 24 int a[5] = { 1,2,3,4,5 }; 25 int *p(a); 26 cout << *p << endl; 27 28 // 左值引用改变指针 29 //变量名前面加一个&就是左值引用 30 int *&lp(p); 31 lp += 1; 32 cout << *p << endl; 33 34 //右值引用 35 //变量名前加两个&&就是右值引用 36 int * &&rrp(&a[1]); 37 rrp += 2; 38 cout << *rrp << endl; 39 cin.get(); 40 }