栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

简述c++中的引用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简述c++中的引用

一.引用和指针的区别

先说引用,引用可以理解为给一个变量起一个别名。要注意的是引用的时候必须要初始化,指针则不用。同时引用的值不能更改。一个变量可以有多个引用,但一个引用不能对应多个变量。

使用引用最需要注意的点是传值返回的时候,如果返回的是引用,一定要确保引用的值不被销毁,以为我们都知道,正常的函数调用后会将返回值保存在临时变量中,然后这个函数的栈,会被销毁。最后将临时变量的值返回到主函数。如果你返回的引用值被销毁了的话就会出现越界访问的情况,有点类似指针返回了一个地址,但该地址已经被回收了。

另一个点是引用的时候要注意权限对应 比方说

const int a = 10;
int &b = a;

这种操作是不合法的。

权限可以缩小但是不能放大,也就是说可以用 const int 来引用int。

还有另一种情况

int a = 2;

const double &b = a;  

相同类型的可以直接引用,对于类型不同的加上const限定权限后也会是可以的,以为a的值会先转换成double类型的临时变量且该变量具有常性。由于不能扩大权限所以要加上const

二.引用的一些优点

使用引用可以提高输入输出效率,同时可以直接修改返回对象,大部分指针能做的工作都可以用引用来代替,某种程度上简化了代码

三.底层实现

从底层的汇编代码来看却有一个神奇的事情,引用的汇编代码和和指针取地址的汇编代码是完全相同的。但是从语法角度来看则是完全不同的,一个开辟了新的空间一个没有开辟空间。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号