C++引用

一、C++引用产生的原因

引用产生原因:
C++引用的产生是为了解决指针的一些问题。指针可以访问并修改内存中的数据,但指针本身也需要占用内存,并且可能会导致空指针和野指针等问题。引用提供了一种更安全、更方便的方式来访问变量,并且不需要额外的内存开销。同时,由于引用必须在定义时进行初始化,并且不能被重新赋值,因此引用也有助于减少程序中的错误和bug

  引用的简单理解就是取别名,和原来被引用的对象公用同一块空间,一个变量可以有多个引用

二、引用的作用

1、作输出型参数

  之前交换两变量的值,需要传变量的地址,地址又会产生一个额外的空间,而现在引用则不用传地址,改变传参形式,便交换两个变量的值

2、作返回值-不会产生临时变量

  当引用不作返回值时,函数返回出了栈帧,变量就被销毁了,编译器在栈帧销毁时,会创建一个临时变量记录n的值,在返回给ret。

  当出了栈帧以后,这块空间便归还给了操作系统。如若我们用引用作返回值,而返回的变量并不在静态区,出了栈帧就被销毁了,那么就会出现野指针

==这里打印ret的值是不确定的==,如果Count函数结束,栈帧销毁时没有清理栈帧,那么ret的结果侥幸是正确的。如果Count函数结束,栈帧销毁时清理了栈帧,那么ret的结果是随机值

3、引用可以修改返回值的值

  引用和返回值公用一块空间,那么通过修改引用值,便可以使返回值随之改变

有了引用,我们可以直接实现一个函数多个用途,一个SLAT()函数就可以自己对顺序表某个位置进行修改和运算,极大提高了效率

4、引用中的权限放大缩小问题

权限:
1、权限可以平移和缩小
2、权限不能放大

看下面的图便能更好的了解到权限问题

三、引用对效率的提升(总结)

1、避免复制:通过使用引用作为函数参数,可以避免将参数复制到新的变量中,从而节省了内存空间和时间开销。
2、减少指针的使用:引用可以起到类似指针的作用,但是相比于指针,引用更加简洁、易读,并且不需要进行解引用操作,这可以降低代码的复杂度和错误的可能性。
3、快速访问:引用可以提高程序的访问速度。因为引用是变量的别名,所以它们共享同一块内存地址,在访问时可以直接访问到原始数据,而不需要额外的寻址操作,这可以减少程序的运行时间。

最后,期待我们在下一篇博客见面!!!

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰瑞的猫^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值