20.左值引用与右值引用

  • 左值引用主要用于引用内存
  • 右值引用主要用于引用寄存器

代码示例

 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 }

 

posted @ 2018-03-11 15:46  喵小喵~  阅读(115)  评论(0编辑  收藏  举报