引用(4)_2023.4.18_初见_图文介绍

引用(4)_2023.4.18_初见_图文介绍_第1张图片

今天结合图片讲讲我对引用的理解,欢迎大家抓虫。

 引用~给变量取别名

1.引用的性质

(1)一个变量可以有多个引用。

(2)引用在被建立时必须初始化。

(3)引用一旦引用一个实体就不能引用其他实体。

2.引用做返回值

关键点:引用是如何实现的?对变量本体取别名,然后通过别名直接抓取变量本体。

引用做返回值的优势

普通的返回值:类似于接力,中间经历了

  1. 一个函数的生命周期
  2. 建立临时变量
  3. 返回值拷贝给临时变量
  4. 临时变量的数据拷贝给ret
  5. 销毁临时变量

等一系列冗余操作。

引用(4)_2023.4.18_初见_图文介绍_第2张图片

(b)引用作返回值:类似于点名,引用会通过别名直接抓取变量本体拷贝给ret,直接对变量在内存中的信息进行操作。

引用(4)_2023.4.18_初见_图文介绍_第3张图片

ps:如果引用的本体被销毁,则引用失效,使用别名或本体名会进行野引用,类似于刻舟求剑。

3.引用时不能扩大变量权限,只能平移或缩小权限。

引用类似于给变量取外号,拷贝变量的值,继承变量的全部或部分权限。

因此当一个别名的变量本体是int类型时,不能将临时变量的值赋给它,因为临时变量有常性,赋值的同时常性也会赋予给变量导致权限扩大。除非在引用前面加上const,使别名权限最后的结果为缩小。

 引用(4)_2023.4.18_初见_图文介绍_第4张图片

 

4.总结与补充:

(1)基本上任何情况下都可以使用引用。

(2)引用做返回值时要谨慎,要注意函数结束后引用的变量本体是否存在,如果变量本体被销毁则不能引用。如图:正确样例把n的值放于静态区没有销毁,因此可以被引用。

引用(4)_2023.4.18_初见_图文介绍_第5张图片

 (3)引用无论是做参数还是返回值,其系统运行效率都是较高的。

(4)别名在创立时可以通过const对其权限进行精准调整。

 

 

 

你可能感兴趣的:(c语言,c++)