C++引用(&)的一些理解

引用(reference)的定义:

int a;

int &b = a;

      首先,C++中的引用即是给变量起别名。变量在编译的时候用内存地址替换,相同的变量名用相同的地址替换,变量名只是给这个内存地址单元起了一个我们方便编程的一个名字。那么引用的定义便是给这个内存空间在原有的名字基础上,再次起了一个别名,而不是重新分配内存空间。编译器在编译的时候,这两个不同的名字就用相同的地址替换。那么上边的定义中,变量a,b便是同一个地址单元的不同的两个名字。

    1、引用是一种关系型声明,声明的时候必须初始化,一经声明,不可变更。

    2、可对引用再次引用,多次引用的结果是某一变量具有多个别名。

 C++中的引用,让很多需要上级指针才能完成的事情变成可在平级内进行。例如:

   在C语言中想要实现两个数据的交换(int a,int b)

        函数  void  swap(int m,int n) 无法实现。需要用到指针  void  swap(int* p,int* q)

        函数调用时需要写成 swap(&a,&b);

   在C++中,引用作为函数的参数

        函数  void  swap(int& m ,int& n)

        函数调用时直接写成swap(a,b);

        我的理解为,在函数调用的时候,给变量a起了别名m,b起了别名n,所对应的内存空间一致,那么对于m,n的操作,a,b的值也会改变,实现交换。

 

    定义指针的引用  

        int* p = &a;  int*& q = p;   //但不能对引用再次引用,也不能定义引用的指针

    定义数组的引用

        int arr[3] = {1,2,3}; int(&arrr)[3] = arr; //但不能定义引用数组

转载于:https://my.oschina.net/u/3367254/blog/861940

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值