zoukankan      html  css  js  c++  java
  • 指针与引用的混合使用总结

    1.指针是间接访问,因为要用*来读取地址处的数据。将指针作为函数的接收参数是间接引用的方式

    引用是直接访问,因为引用是别名,不用任何符号就可以直接读取该对象的数据。将别名作为函数的接收参数是直接引用

    2.

    指针

    引用

    是否可以为空

    可以

    不可以

    是否可以初始化

    可以

    可以

    是否可以赋值

    可以

    不可以

    是否可以访问堆

    可以

    不可以

    不否可以改变对象

    可以改变指向的对象,可以改变对象的值

    不可以改变引用的对象,可以改变对象的值

    3.例1:int &r = new int; //错误,不可以直接引用来指向堆中空间

    4.例2:int *p = new int;

                  int &r = *p; //正确,r是通过指针p读取到的未命名int型变量的别名

                  r = 4;

                  cout << *p ; //输出4

    5.例3:int  *&r = new int; //正确

    创建一个堆中空间,定义r来作为该空间地址的引用,这样r就成了该空间地址的别名。由于引用不能作为指针来使用,所以在&r前面加个*。这样,r变成了一个指针变量,它保存的是堆中空间的地址。所以用*来访问r,*r就是访问堆中数据。用*来读取r地址处的值,*&r就是读取堆中的地址。

    6.例4:

    输出:

    读取新空间的地址处的值6
    输出新空间的地址006A1DF8
    输出r的内存地址0012FF40

    7.int *p, *q; //p和q都是指针

       int *p,q; //p是指针,q是变量

  • 相关阅读:
    Nios学习笔记3——流水灯实验
    Nios学习笔记2——流水灯实验
    Nios学习笔记1——流水灯实验
    转:摄像头camera 7660/7670/7225/9650以及程序流程(一)
    fpga 扇入扇出
    门控时钟的使用
    门控时钟与多扇出问题解决方案
    为所欲为——教你什么才是真正的任意分频
    SDRAM时序--读高手进阶,终极内存技术指南
    FPGA你必须知道的那些事儿
  • 原文地址:https://www.cnblogs.com/windmissing/p/2559878.html
Copyright © 2011-2022 走看看