【C++初阶】引用

文章介绍了C++中的引用概念,强调其作为变量别名的特性,不占用额外空间。引用必须在定义时初始化,并且一旦绑定不能更改。引用常用于参数传递以避免拷贝,尤其是对于大对象或需要修改的情况。然而,引用作为返回值需谨慎,因为可能涉及生命周期问题。引用与指针的区别在于引用是固定绑定的,没有NULL引用,且使用更安全。
摘要由CSDN通过智能技术生成

 

一.概念

引用就是取别名,在语法上它不会开空间,而是和它引用的变量共用同一块空间对引用的操作也就是对原来变量的操作。就像现实生活中给人取外号一样,不管是喊外号还是本名,指的都是那个人。


二.引用特性

1.引用类型必须和引用实体是同种类型的;

2.引用在定义时必须初始化
3. 一个变量可以有多个引用

4.引用只能有一个实体,它和指针不同,指针能够改变指向,而引用不能。

所以上图中的 b=x ,是赋值语句,而不是b引用x; 

5.引用的权限可以缩小,可以平移,但不可以放大

权限放大:

权限缩小:

权限平移:

 


三.使用场景

引用做参数

1.做输出型参数(输出型参数就是形参的改变会改变实参,输入型参数相反);

2.减少拷贝,提高效率(在遇到大对象,或者是要深拷贝时宜用)

举一个典型的例子,C语言阶段我们都写过交换函数,当时是用的指针实现,但现在我们可以用引用实现:

引用做返回值

1.减少拷贝,提高效率(在遇到大对象,或者是要深拷贝时宜用);

2.修改返回值+获取返回值

引用做参数可以随便用,但是引用做返回值可不敢随便用

1.如果函数结束,返回的变量不销毁,可以用引用做返回值

2.如果函数结束,返回的变量销毁,则不可以用引用做返回值,可能会出现随机值;

这几点要牢记,防止出现莫名其妙的错误。


四.引用和指针的区别

在C++中引用可已用来代替指针实现一些功能,但C++并没用完全抛弃指针,有的功能就必须要用指针,所以C++的引用不能完全代替指针

实际上,引用的底层使用指针实现的,所以实际上引用是开空间的,但我们前期就认为它不开空间。

引用和指针的不同点:
1. 引用概念上定义一个变量的别名,指针存储一个变量地址;
2. 引用在定义时必须初始化,指针没有要求;
3. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任      何一个同类型实体;
4. 没有NULL引用,但有NULL指针;
5. 在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数        (32位平台下占4个字节);
6. 引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小;
7. 有多级指针,但是没有多级引用;
8. 访问实体方式不同,指针需要显式解引用,引用编译器自己处理;
9. 引用比指针使用起来相对更安全;


🐬🤖本篇文章到此就结束了, 若有错误或是建议的话,欢迎小伙伴们指出;🕊️👻

😄😆希望小伙伴们能支持支持博主啊,你们的支持对我很重要哦;🥰🤩

😍😁谢谢你的阅读。😸😼

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值