【C++初阶】引用

这篇具有很好参考价值的文章主要介绍了【C++初阶】引用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【C++初阶】引用

 

一.概念

引用就是取别名,在语法上它不会开空间,而是和它引用的变量共用同一块空间对引用的操作也就是对原来变量的操作。就像现实生活中给人取外号一样,不管是喊外号还是本名,指的都是那个人。

【C++初阶】引用


二.引用特性

1.引用类型必须和引用实体是同种类型的;

2.引用在定义时必须初始化
3. 一个变量可以有多个引用

【C++初阶】引用

4.引用只能有一个实体,它和指针不同,指针能够改变指向,而引用不能。

【C++初阶】引用

所以上图中的 b=x ,是赋值语句,而不是b引用x; 

5.引用的权限可以缩小,可以平移,但不可以放大

权限放大:

【C++初阶】引用

权限缩小:

【C++初阶】引用

权限平移:

 【C++初阶】引用


三.使用场景

引用做参数

1.做输出型参数(输出型参数就是形参的改变会改变实参,输入型参数相反);

2.减少拷贝,提高效率(在遇到大对象,或者是要深拷贝时宜用)

举一个典型的例子,C语言阶段我们都写过交换函数,当时是用的指针实现,但现在我们可以用引用实现:

【C++初阶】引用

引用做返回值

1.减少拷贝,提高效率(在遇到大对象,或者是要深拷贝时宜用);

2.修改返回值+获取返回值

【C++初阶】引用

引用做参数可以随便用,但是引用做返回值可不敢随便用

1.如果函数结束,返回的变量不销毁,可以用引用做返回值

2.如果函数结束,返回的变量销毁,则不可以用引用做返回值,可能会出现随机值;

这几点要牢记,防止出现莫名其妙的错误。


四.引用和指针的区别

在C++中引用可已用来代替指针实现一些功能,但C++并没用完全抛弃指针,有的功能就必须要用指针,所以C++的引用不能完全代替指针

实际上,引用的底层使用指针实现的,所以实际上引用是开空间的,但我们前期就认为它不开空间。

引用和指针的不同点:
1. 引用概念上定义一个变量的别名,指针存储一个变量地址;
2. 引用在定义时必须初始化,指针没有要求;
3. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任      何一个同类型实体;
4. 没有NULL引用,但有NULL指针;
5. 在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数        (32位平台下占4个字节);
6. 引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小;
7. 有多级指针,但是没有多级引用;
8. 访问实体方式不同,指针需要显式解引用,引用编译器自己处理;
9. 引用比指针使用起来相对更安全;


🐬🤖本篇文章到此就结束了, 若有错误或是建议的话,欢迎小伙伴们指出;🕊️👻

😄😆希望小伙伴们能支持支持博主啊,你们的支持对我很重要哦;🥰🤩

😍😁谢谢你的阅读。😸😼

【C++初阶】引用文章来源地址https://www.toymoban.com/news/detail-459880.html

到了这里,关于【C++初阶】引用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++初阶】引用&内联函数&auto关键字&范围for循环&nullptr

    ========================================================================= 个人主页还有更多系列专栏: 小白不是程序媛 我的小仓库: Gitee C++系列专栏: C++头疼记 ========================================================================= 目录 前言 引用 概念 引用的特点 常引用  引用的使用场景 做参数  做返

    2024年02月08日
    浏览(47)
  • 【C++初阶】C++基础(下)——引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr

      目录 1. 引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 1.5 传值、传引用效率比较 1.6 引用和指针的区别 2. 内联函数 2.1 概念 2.2 特性 3.auto(C++11) 3.1 类型别名思考 3.2 auto简介 3.3 auto的使用细则 3.4 auto不能推导的场景 4. 基于范围的for循环(C++11) 4.1 

    2024年02月15日
    浏览(77)
  • 【C++初阶】二、入门知识讲解(引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr)

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 【C++初阶】一、入门知识讲解 (C++、命名空间、C++输入输出、缺省参数、函数重载)-

    2024年02月04日
    浏览(68)
  • 【C++】C++引用 (引用不会?详细解决引用诸多细节!)

    C++引用目录: 一、引用的概念 二、引用的特性 2.1引用在定义的时候必须初始化 2.2一个变量可以有多个引用 2.3引用一旦引用了一个实体,就不可以再引用其他实体 三、常引用(带const的引用) 3.1临时变量有常性不能修改(传值返回,隐式/强制类型转换时产生) 3.2指针/引用

    2024年02月09日
    浏览(40)
  • 【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 )

    之前的 【C++】C++ 引用详解 ① ~ ⑦ 博客中 , 讲解的都是 普通引用 , 也就是 将 普通变量 赋值给 引用 , 过程如下 : 先定义 普通变量 a , 然后定义 已存在变量 a 的引用 b ; 这里的 引用 b 就是 普通引用 ; 普通引用代码示例 : 执行结果 : 与 变量引用 相对的就是 常量引用 ; 通过 普

    2024年02月11日
    浏览(36)
  • 【C++】C++ 引用详解 ⑦ ( 指针的引用 )

    指针的引用 效果 等同于 二级指针 , 因此这里先介绍 二级指针 ; 使用 二级指针 作为参数 , 可以实现如下功能 : 动态内存管理 : 借助二级指针 , 可以在函数中分配或释放内存 ; 如 : 创建一个动态数组或调整现有数组的大小 , 在函数中需要一个指向指针的指针作为参数 , 以便修

    2024年02月11日
    浏览(42)
  • 【C++】C++ 引用详解 ① ( 变量的本质 - 引入 “ 引用 “ 概念 | 引用语法简介 | 引用做函数参数 | 复杂类型引用做函数参数 )

    \\\" 引用 \\\" 语法 是 C++ 语言中 特有的 , 在 C 语言中是没有 引用 这个概念的 ; 分析 引用 之前 , 先回顾下 变量 : 在 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 ) 博客中 , 介绍了变量的本质 : 变量 的本质是 内存空间 的 \\\" 别名

    2024年02月11日
    浏览(49)
  • 【C++初阶】第六站 : 模板初阶

    前言: 本章知识点:泛型编程、函数模板、类模板 专栏: C++初阶 目录 泛型编程 函数模板 1.函数模板概念 2.函数模板格式 3.函数模板的原理 4.函数模板的实例化 5.模板参数的匹配原则 类模板 类模板的定义格式 类模板的实例化 如何实现一个通用的交换函数呢? 代码如下:

    2024年03月17日
    浏览(47)
  • C++初阶:C++入门

    目录 一.iostream文件 二.命名空间 2.1.命名空间的定义 2.2.命名空间的使用 三.C++的输入输出 四.缺省参数 4.1.缺省参数概念 4.2.缺省参数分类 4.3.缺省参数注意事项 4.4.缺省参数用途 五.函数重载 5.1.重载函数概念 5.2.C++支持函数重载的原理--名字修饰(name Mangling) 5.3.extern \\\"C\\\" 六.引用

    2024年02月09日
    浏览(43)
  • 【C++初阶】8. STL初阶 + String类

    STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗 数据结构与算法的软件框架 。 原始版本 Alexander Stepanov、Meng Lee 在 惠普实验室 完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播

    2023年04月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包