[lesson05]引用的本质分析

引用的本质分析

引用的意义

  • 引用作为变量别名而存在,因此在一些场合可以代替指针

  • 引用相对于指针来说具有更好的可读性实用性
    在这里插入图片描述

    注意: 函数中的引用形参不需要进行初始化!!

特殊的引用

  • const引用

    • 在C++中可以声明const引用

    • const Type& name = var;

    • const引用可以让变量拥有只读属性
      在这里插入图片描述

    • 当使用常量const引用进行初始化时,C++编译器会为常量值分配空间,并将引用名作为这段空间的别名。
      在这里插入图片描述

    结论:
    使用常量对const引用初始化后将生成一个只读变量!!!

引用的本质

  • 引用在C++中的内部实现是一个指针常量
    在这里插入图片描述

    注意:

    1. C++编译器在编译过程中用指针常量作为引用的内部实现,因此引用所占用的空间大小与指针相同
    2. 从使用的角度,引用只是一个别名,C++为了实用性而隐藏了引用的存储空间这一细节

引用的意义

  • C++中的引用旨在大多数的情况下代替指针
    • 功能性:可以满足多数需要使用指针的场合
    • 安全性:可以避开由于指针操作不当而带来的内存错误
    • 操作性:简单已用,又不失功能强大

小结

  • 引用作为变量别名而存在旨在代替指针
  • const引用可以使得变量具有只读属性
  • 引用在编译器内部使用指针常量实现
  • 引用的最终本质为指针
  • 引用可以尽可能的避开内存错误

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可能是最便宜的姿态传感器,国产三轴加速度计SC7A20

可能是最便宜的姿态传感器 三轴检测 批量参考价格:整盘单价:1.242,一个包装10K,希望厂家能出点数量少的包装,这一盘太多了:) 特点 宽电压范围 1.71V-3.6V 1.8V 兼容数字 IO 口 低功耗模式下…

若依项目名、包名修改器

Updater.java import java.io.File; import java.util.*;public class Updater {public static void main(String[] args) {String projectPath"D:\\workspace\\idea\\RuoYi-Cloud-Plus-2.X";updateNames(new File(projectPath));}//需要改名的目录名称(…

GNURadio 软件在windows环境下安装

一、软件下载 网址:InstallingGR - GNU Radio 我已经下载的软件安装包,radioconda-2024.01.26-Windows-x86_64.rar 网址:https://download.csdn.net/download/weixin_37728585/89082238 二、安装过程 所有用户均可以使用。 选择安装路径&a…

一文彻底搞清 Iterator(遍历器)概念及用法

目录 一、由来及意义 二、具体实现流程 三、具有默认 Iterator 接口的数据结构 四、调用 Iterator 接口的场合 五、总结 一、由来及意义 Javascript中表示“集合”的数据结构,主要是 Array、Object、Map、Set 这四种数据集合,除此之外,…

每日一题 --- 删除字符串中的所有相邻重复项[力扣][Go]

删除字符串中的所有相邻重复项 题目:1047. 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所…

JVM基础二——类的生命周期

加载阶段 : 连接阶段: 初始化阶段: 总结:

【Linux】SSH协议应用

SSH协议 SSH简介实现OpenSSH ssh中的四个文件~/.ssh文件路径实验解析 SSH 简介 SSH(secure shell)只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件&#xf…

React三大组件--ref

1.定义&#xff1a;组件内的标签可以定义ref属性来标识自己。 2.使用ref的三种方法 字符串形式的ref &#xff08;这个写法会慢慢替换掉&#xff0c;所以尽量不要写字符串形式&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta cha…

第18讲:数据在内存中的存储

⽬录 1. 整数在内存中的存储 2. ⼤⼩端字节序和字节序判断 3. 浮点数在内存中的存储 ——————————————————————————————————————————— 1. 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们就讲过了下⾯的内容&#x…

力扣热题100_链表_21_合并两个有序链表

文章目录 题目链接解题思路解题代码 题目链接 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例…

jupyter Notebook 默认路径修改

1. anaconda prompt 中运行 jupyter notebook --generate-config 命令&#xff0c;将在 C:\Users\Think\.jupyter文件下生成 jupyter_notebook_config.py 文件。 2.在jupyter_notebook_config.py 文件中&#xff0c;找c.NotebookApp.notebook_dir 这个变量&#xff0c; (1)若…

Solana 线下活动回顾|多方创新实践,引领 Solana“文艺复兴”新浪潮

Solana 作为在过去一年里实现突破式飞跃的头部公链&#xff0c;究竟是如何与 Web3 行业共振&#xff0c;带来全新的技术发展与生态亮点的呢&#xff1f;在 3 月 24 日刚结束的「TinTin Destination Moon」活动现场&#xff0c;来自 Solana 生态的的专家大咖和 Web3 行业的资深人…

Java生产者消费者模式(等待唤醒机制)

1.生产者消费者模式 生产者消费者模式是一个十分经典的多线程协作的模式&#xff0c;主要用于解决多线程间的同步问题。它描述了两个类之间的协作&#xff1a;生产者和消费者。生产者负责生成数据&#xff08;或称为“产品”&#xff09;&#xff0c;而消费者负责消费这些数据…

LeetCode - 移除石子使总数最小

1962. 移除石子使总数最小 当我看到这道题目的时候&#xff0c;第一时间想到的是&#xff1a;while循环 sort&#xff0c;时间复杂度 k*nlogn。题目要求执行k次操作后&#xff0c;剩下狮子的最小总数&#xff0c;我们是否可以考虑维护一个堆呢&#xff1f;堆顶值最大&#xff…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《台风灾害下考虑多类型故障不确定性的源网荷协同弹性提升模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Leetcode_2两数相加

文章目录 前言一、两数相加1.1 问题描述1.2 解法一&#xff1a;分别将链表转为数字&#xff0c;然后相加1.3 代码实现1.4 解法二&#xff1a;分别将对应位置数字相加1.5 代码实现 二、使用步骤1.引入库2.读入数据 前言 链表是一种物理内存非连续存储&#xff0c;非顺序的线性数…

AI论文速读 |【综述】 时序分析基础模型:教程与综述

论文标题&#xff1a;Foundation Models for Time Series Analysis: A Tutorial and Survey 作者&#xff1a; Yuxuan Liang&#xff08;梁宇轩&#xff09;, Haomin Wen&#xff08;温浩珉&#xff09;, Yuqi Nie&#xff08;PatchTST一作&#xff09;, Yushan Jiang, Ming J…

windows安装Openssl

openssl官网:[ Downloads ] - /source/index.html Windows 安装方法 OpenSSL 官网没有提供 Windows 版本的安装包&#xff0c;可以选择其他开源平台提供的工具 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 等待下载完成 捐不起 配置环境变量 ope…

【ZZULIOJ】1035: 分段函数求值(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 已知&#xff1a;y是x的函数, 当x<-2时&#xff0c;y7-2x&#xff1b; 当x>-2,且x<3时&#xff0c;y5-|3x2|&#xff1b; 当x>3时&#xff0c;y3x4 输入 任意输入一个整数x。 输出 …

LC 111.二叉树的最小深度

111. 二叉树的最小深度 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a; 叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a; root [3,9,20,null,null,15,7] 输出&#xff1a;…