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

C++引用知识归纳

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

C++引用知识归纳

目录

一. 特性

二. 使用方法

 三. 优点

四. 与指针的关系(区别和共性)


一. 特性

引用有三个主要特性:必须初始化、对象不可修改、函数形参不必进行拷贝(语法上)。

在使用引用时必须进行初始化,即给它赋一个对象。

在使用引用时,不可改变引用对象。即引用的初始化对象即是它永远的对象。

举个例子:

 这里我们就可以看到 b = c的操作,不是说把b的引用对象改成c,而是说把c的值传递给b所引用的对象a。

第三点我们在优点这一部分进行解释。

二. 使用方法

引用大体可分为传参引用和返回引用。

传参时,可作为函数的参数使用。

使用方式如下:

作为函数返回值时,特定情况下可以简化程序。

下方是引用返回,程序目的a[5]值加一。

 下方是普通函数做法。

 哪个巧妙,高下立判藍

值得注意的是,在使用引用时要注意权限问题,使用权限只能由大到小,不能由小到大。

举例来讲:

int 类型的对象可以被const int类型引用,但反之不行。

 此外,int 类型的对象不能被double 类型的引用接收,但可以被const double 类型引用接收。

原因是,int在转换成double类型时(隐式转换)会先进行拷贝,拷贝对象的类型是const,所以只能由const类型的引用接收。

其他类型同理。

 三. 优点

引用作为函数参数传递时,主要优点有:

1.速度更快

2.节省空间,语法上不必对实参进行拷贝(主要是大对象/大数据)

速度快我们用一个程序来解释:

 至于节省空间,则是在面对大对象的时候比传值拷贝实参要节省很多的空间。

四. 与指针的关系(区别和共性)

在使用上,引用与指针区别不大。

主要区别是:

1.指针不用初始化,引用需要。

2.指针可改变指向,引用不可。

3.指针可以指向空(NULL),引用不可。

4.指针可以迭代指向,引用不可(链表那样)。

可以说,指针功能更强大,但也更危险。

在底层上,引用与指针是一样的。之前我们所说的引用做参数时不必拷贝,那是语法上而言。

实际上,是作为一个指针,装存实参的地址,指向实参。

这一点,我们到反汇编来看,即可一探究竟:

可以看到exmaple1 和example2的底层是完全一致的,均是按照指针的方式实现。

 

 


感谢各位高抬贵手,三连支持珞  如有错误,敬请斧正

 

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

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

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