文章目录
- 🎄 前言
- 💖 何为引用
- 🍺深入理解引用
- ✈️取别名规则:权限只能缩小不能放大
- 😁 引用的简单应用
- 🚙 引用和指针的区别
- 🎉结语
🎄 前言
开启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.
🎉结语
球球大家点个免费的赞呗