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

浅浅地讲一下引用吧

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

浅浅地讲一下引用吧

文章目录
    •  前言
    •  何为引用
    • 深入理解引用
        • ✈️取别名规则:权限只能缩小不能放大
    •  引用的简单应用
    •  引用和指针的区别
    • 结语


 前言
开启C++之路,希望看了这篇文章之后可以帮助你理解引用


 何为引用
		引用简单理解一下就是起别名

比如 宇智波鼬,有人叫鼬,有人叫鼬神,有人叫一打七,佐助就叫他欧尼酱

再比如宇智波佐助,有人叫他佐助,有人叫他二柱子,有人叫他啥是gay,鼬就叫他愚蠢的欧豆豆


深入理解引用


上图我们可以看到,b是a的引用,a和b的值不仅一样,就连地址也是一样的。

引用在定义的时候就必须初始化,而且不能更改了。

看上图,我们改变了b的值,a和b的值一起被改变了,让我们再浅浅调试一波吧

✈️取别名规则:权限只能缩小不能放大


在这里对100进行引用,100是个常量,常量不可修改,100就是100,所以需要在 int& 之前 加一个const,100是只读,int& a这种用法是可读可写,加个const 就是只读了


解释一下上图吧:
将double型的变量赋值给int型会产生一个临时变量,临时变量具有常量的性质,所以,const int &c=d是对的。


 引用的简单应用

在C语言中我们如果写一个函数交换两个数字,那么需要传这两个数的地 址,这样不好理解并且有点难操作。

在这里用引用写的话就很简单易懂。



如果函数返出了作用域返回对象还没被销毁的话就传引用,否则就传返回值。


由上图 引用要加const 可知函数返回值也是产生了个临时变量

下面这俩图就让大家更深地理解一下引用


 引用和指针的区别

引用和指针的区别简单来说就像换壳的车
表面看起来不一样,底层逻辑其实是一样的。


1.指针是有一个8字节或者4字节的空间存放着变量的地址,而引用是给变量起别名,不需要额外的空间,sizeof(指针)的话根据计算机位数决定,sizeof(引用根据引用的变量的大小改变)。

2.引用定义时必须初始化,指针没有要求

3.没有NULL引用,但有NULL指针

4.引用比指针更安全

5.引用在引用了一个变量之后不能引用其他的变量,指针没有要求

6.有多级指针没有多级引用

7.访问实体方式不同,指针需要解引用,引用编译器自己处理

8 指针+1是跳过一个类型
大小个字节,而引用加一就是实体+1.

结语

球球大家点个免费的赞呗

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

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

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