对引用的理解(C++)

本文探讨了C++中引用的概念,包括引用作为别名、常引用的保护作用,以及引用在函数传递和返回值中的应用。同时,对比了引用与指针在定义、使用、层次和sizeof运算符处理上的差异。
摘要由CSDN通过智能技术生成

        &:在引用中不是求地址运算,仅仅起到一个标识的作用。

引用

        引用是对数据起别名,通过别名或者原名称都可以找到这份数据,相当于目标变量有两个名称。因此,编译器并不会给引用开辟新的内存空间。

格式

        数据类型  &引用变量名=原变量名;

int a=0;
int &ra=a;

        在定义时,加&起标识作用,使用时,不加&,加上代表取地址。

常引用

        在引用前加const修饰,常引用不能对变量的值进行修改,可以起到保护原数据的作用。

        引用=取别名,取别名前后权限只能不变或者缩小,加const后修饰,只有读的权限。

const int &ref=a;

使用场景

        1.引用传递:引用作为函数的形参。这样如果在函数体中修改了形参的数据,实参的数据也会被修改。

        2.做函数的返回值,减少拷贝

        注意:不能返回局部数据(例如局部变量、局部对象、局部数组等)的引用,因为当函数调用完成后局部数据就会被销毁,有可能在下次使用时数据就不存在了

引用和指针的区别

        引用在定义时必须初始化,并且从一而终,不能指向其他数据。而指针在定义时可以不必赋值,也可以指向其他数据。

        引用只有一级(&),而指针可以有多级(*,**)。

        引用自增是实体加一,而指针自加则是向后偏移一个类型的大小。

        在sizeof中,引用是引用类型的大小,而指针则是地址空间所占字节的个数(64位8B,32位4B)。

        

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值