zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    [火柴排队]
    [NOI2001食物链]
    [黑科技]
    [SDOI2009HH的项链]
    [GXOI/GZOI2019旅行者]
    [Nim游戏]
    Log4Net
    C#创建windows服务并定时执行
    MySQL实现类似Oracle的序列
    DevExpress XtraTreeList的复选框 禁用
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8544450.html
Copyright © 2011-2022 走看看