zoukankan      html  css  js  c++  java
  • 21.引用指针

     1 #include <iostream>
     2 using namespace std;
     3 //改变指针,需要二级指针,也可以用引用
     4 
     5 //左值引用与右值引用
     6 void main1()
     7 {
     8     int a(4);
     9     int *p(new int(5));
    10     cout << a << endl;
    11     cout << *p << endl;
    12     //右值引用
    13     int &&rra(move(a));//右值引用,有内存实体就直接引用,没有就开辟内存
    14     rra = 1;
    15     cout << a << endl;
    16 
    17     //左值引用
    18     int &la(a);
    19     int *&lp(p);
    20     la = 3;
    21     *lp = 12;
    22     cout << a << endl;
    23     cout << *p << endl;
    24 
    25 
    26     cin.get();
    27 }
    28 
    29 //引用一级指针
    30 int num1 = 10;
    31 int num2 = 20;
    32 //C++能用引用就别用指针
    33 //引用可以改变指针的地址也可以改变指针指向的地址或值
    34 void change(int *&rp)
    35 {
    36     rp = &num2;
    37 }
    38 
    39 
    40 void main2()
    41 {
    42     int *p = &num1;
    43     change(p);
    44 }
    45 
    46 //引用二级指针
    47 int data1 = 10;
    48 int data2 = 20;
    49 int *p = &data1;
    50 int *p2 = &data2;
    51 
    52 //引用传递的是变量的地址
    53 void changeit(int **&rpp)
    54 {
    55     //变量的地址指向的地址改变
    56     //*rpp = &data2;
    57     //变量的地址改变
    58     rpp = &p2;
    59 }
    60 
    61 void main()
    62 {
    63     int **pp = &p;//二级指针
    64     changeit(pp);
    65     cout << **pp << endl;
    66     cin.get();
    67 }
  • 相关阅读:
    linux下 C++ 读取mat文件 MATLAB extern cyphon scipy 未完待续
    mshadow笔记
    mem_fun 例子
    gedit embeded terminal 设置字体 颜色
    decltype typename
    gcc4.9.1新特性
    C++开发者都应该使用的10个C++11特性 转
    如何加快C++代码的编译速度 转 ccache
    cout关闭输出缓冲,调试用
    boost range zhuan
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8544583.html
Copyright © 2011-2022 走看看