【C++】引用——一个背刺指针的神秘刺客(2)

前言

  • 大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎!
  • 如标题所示,本章主要内容主要来侃侃“引用”这个刺客!如下就是大纲啦~

一.引用


1.含义与特点

引用,即取别名。它的最大特点是编译器不会为引用变量而开辟空间,他们共用同一块空间。 


2.引用和指针的区别(主要) 

1.引用使用时必须要初始化

2.引用在初始化时引用一个实体后,不能再次引用其他实体,只能赋值。

3.引用使用起来更安全

图示:


3.引用的实际使用


一.引用作为参数

作为输出型参数时,面对大对象/深拷贝对象时,由于不用另外开辟空间拷贝,可以提高效率


二.引用作为返回值  

小目录:

  1. 适用场景
  2. 修改返回值+获取返回值 (使通讯录代码更简洁)

1.不适用场景: 

适用场景:(静态区栈帧不销毁)


2.实际应用 

  • 在通讯录中,用传统的方法,需要“查找"到对应pos位置后再“修改”
  • 而运用“引用作为返回值”,可直接对查找到的值进行修改。 

原本操作:

改进后操作: 

 


3.引用过程中的权限问题(平移,缩小,放大) 

  1. 首先我们要知道,临时变量是具有常性const 修饰的类型也具有常性static的数据存储在静态区同样具备常性
  2. const和static的权限理论上平级,而临时变量的权限低于二者。
  3. 只能存在权限平级和权限缩小的情况,不能存在权限放大的情况。通俗而言:权限低的不能给权限(常性)强的取别名。

权限相关知识点:权限等级较高的是const和具有常属性的量,权限较低的是普通数据

  • 权限高的或平级的可以给另一量取别名/取地址(权限的缩小平移
  • 权限低的不能给另一量取别名/取地址(权限的放大

图示:

1.平级和权限缩小的情况

 

 2.权限平移情况

 3.权限放大情况

 PS:const原则上不能修改,但是可以通过找到其空间直接修改。(指针/别名)

  • 38
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YY的秘密代码小屋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值