C++的引用

1.C++的引用

    引用是C++的一个重要特性,正确的使用可以使代码更简洁和高效。

    所谓引用就是变量的一个别名,可以理解为引用就是该变量本身。在C++中,引用符用 & 表示。

    在语法上面,计算机是不会为引用去开辟内存的。

         int a=10;

         int &b=a;  //为a取了一个别名叫做b,a和b所指代的是同一个地址空间的同一变量

要注意的是:

    a.一个变量可以有多个引用。

    b.引用必须初始化。(创建对象并赋与初值)

    c.引用只能在初始化的时候被引用一次,不能改变为其他引用的变量。

    d.  const 引用: const  作为限定符,它限制一个常量不允许被改变。在赋予一个属性为常量的变量 引用的时候,要加上 const 修饰符修饰。如:

       const  int a=10;

       const  int &b=a;//因为a是一个常属性变量,所以在赋予a一个引用的时候,引用的属性也要为常属性。

2.引用的作用

   a.引用作为参数传递时

       在主函数中, func(a,b);

       在调用函数 func(a,b)中, func(int &a,int &b)来接收

       用引用做参数的好处,有以下三点

        (1)函数内部的改变,也改变了外部的参数

        (2)当参数为数组时,传引用可以节省空间

        (3)当函数中进行只读操作(不能修改变量在内存中的值时),用 const 来修饰参数更为方便。

  b.引用作为返回值传递时

      容易引发错误的两点

      (1)不要返回临时变量的引用(因为除了作用域的话,临时变量的生命周期结束,所在的地址空间就会被操作系统回收,从               而导致引用所取到的值可能不是预期值)

       (2)如果出了作用域,临时变量还存在(static修饰,全局变量,传参传进来的),尽量用引用。会使代码更简洁,高效

 3.指针和引用的区别和联系

      (1)上面我们说过,在语法上,计算机是不会为引用分配内存的。但是其实在底层(汇编层)的实现,为了满足引用的要求,引用其实跟指针一样也开辟了变量.

       (2)引用:从一而终,而且必须初始化。    指针可以不用初始化。

       (3)引用必须指向有效变量,但指针可以不用。

       (4)sizeof()意义不同。 sizeof(引用)表示所指向变量大小。  

                                             sizeof( 指针)表示变量的地址大小。

        (5)指针和引用的自增,自减意义不同。   指针++表示加上指针所指类型的大小。

                                                                          引用++表示引用的值加一。

         (6)指针比引用更灵活但也更容易出错。

 

以上是我自己对这部分的理解。内容如有错误,欢迎指正

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值