C++引用和指针的区别还分不清楚?

devtools/2024/9/20 1:32:02/ 标签: c++, 开发语言

不像其他语言,c++既有引用的概念、又有指针的概念。

很多人用着用着就懵了。

不用慌,给你画个表格协助判断。
在这里插入图片描述
总体上,我们可以总结为以下五个区别:

一、定义方式:

  • 指针通过使用 * 来定义,例如:int* ptr;
  • 引用使用 & 来定义,例如:int& ref = num; ,并且必须在定义时进行初始化。

二、内存存储

  • 指针本身有自己的内存空间,用于存储所指向对象的地址。
  • 引用不占用额外的内存空间,它只是所引用对象的一个别名。

三、可重新赋值

  • 指针可以指向不同的对象,即可以重新赋值。
  • 引用一旦初始化,就不能再引用其他对象。

四、空值

  • 指针可以为空(NULL 或 nullptr )。
  • 引用必须关联到一个有效的对象,不能为空。

五、操作方式

  • 访问指针所指向的对象需要使用解引用操作符 * 。
  • 引用可以直接像使用原始对象一样使用。

http://www.ppmy.cn/devtools/95387.html

相关文章

Qt之2048项目的介绍

文章目录 前言项目介绍项目截图技术介绍1. Qt 框架2. 界面绘制3. 用户输入4. 游戏逻辑5. 音效处理总结前言 2048 是一款流行的益智游戏,通过滑动屏幕上的数字方块,使相同的数字合并并生成更大的数字,最终目标是生成2048这个数字。本文介绍了基于 Qt 框架开发的一个 2048 游…

【前端】NodeJS:记账本案例优化(会话控制)——登录、注册

文章目录 1 checkLoginMiddleware.js2 auth.js3 app.js4 设置公益404:404.ejs 1 checkLoginMiddleware.js //检测登录的中间件 module.exports (req, res, next) > {//判断if(!req.session.username){return res.redirect(/login);}next(); }2 auth.js var ex…

YOLOv8改进 | 融合改进 | C2f融合轻量化视觉Transformer【完整代码】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

python实现每天定时发送邮件

文章目录 步骤 1: 安装所需的库步骤 2: 编写发送电子邮件的 Python 脚本步骤 3: 配置电子邮件发送服务步骤 4: 运行脚本进一步扩展 要编写一个用于自动发送每日电子邮件报告的 Python 脚本,并配置它在每天的特定时间发送电子邮件,使用 smtplib 和 emai…

【功能全局变量】设计模式讲解

1.什么是功能全局变量(FGV)? FGV是一种标准的LabVIEW数据结构,允许对数据或资源进行受控访问,通常允许执行各种操作。每次调用FGV时,框图只会执行一次,要么进行数据更新,要么进行读取…

MySQL——单表查询(二)按条件查询(2)带 IN 关键字的查询

IN 关键字用于判断某个字段的值是否在指定集合中,如果字段的值在集合中,则满足条件,该字段所在的记录将被查询出来。其语法格式如下所示: SELECT *|字段名 1,字段名 2,… FROM 表名 WHERE 字段名 [NOT〕IN(元素 1,元素 2,…) 在上…

WPS真题题库导入刷题小程序:百思考个人使用经验分享

这篇文章的诞生,是因为我即将踏上一场超级有趣的挑战——备考全国计算机等级二级WPS Office高级应用与设计的冒险之旅! WPS的分值: 单项选择题20分(含公共基础知识部分10分)。 WPS处理文字文档操作题30分。 WPS处理电子表格操作题30分。 …

Electron:摄像头录制和屏幕录制

摄像头录制 main.js const { app, BrowserWindow} require(electron)let mainWin null const createWindow () > {mainWin new BrowserWindow({width: 800,height: 600,title: 自定义菜单,webPreferences: {// 允许渲染进程使用nodejsnodeIntegration: true,// 允许渲…

SpringBoot-配置加载顺序

目录 前言 样例 内部配置加载顺序 ​ 样例 小结 前言 我之前写的配置文件,都是放在resources文件夹,根据当前目录下,优先级的高低,判断谁先被加载。但实际开发中,我们写的配置文件并不是,都放…

ComfyUI - 在服务器中部署 AIGC 绘画的 ComfyUI 工具 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/141140498 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 ComfyU…

A股触底强反弹,后市如何演绎?

今天的A股,让人瞬间惊呆了,盘面上出现2个耐人寻味的重要信号,一起来看看: 1、今天亚太地区日经指数大涨3.45%,外围基本上收复失地了。而大A吓趴下后,一路探底到前低2845点附近了。 2、盘面上出现两个耐人寻…

出国留学如何兼顾学习与生活?

留学无疑首先是一种人生经历,这种经历是一直待在国内没法体验。留学不仅仅是学知识,也是了解、融入西方社会的一条重要通道。学习之外的东西,对于留学生个人形成完整的人生观、世界观以及价值观是非常重要的。呼吸清新的空气,体会…

计算机的错误计算(六十)

摘要 用另一种方法计算计算机的错误计算(五十五)中案例:先使自变量与 取余,再计算取余后的余弦值,这时,得到了不同的输出。因此,即使不清楚正确结果,Python 与 Visual Studio 也各自…

UCOSIII消息队列详解

目录 1. 基本概念 2. 消息池 3. 消息队列的运作机制 4. 阻塞机制 5. 消息队列的应用场景 6. 注意事项 7.代码实现 7.1 创建消息队列 7.2 请求消息 7.3 发送消息 UCOSIII(也称为μC/OS-III)中的消息队列是一种常用于任务间通信的数据结构&#…

Tomcat部署及优化

前端 可以说是 中间件 前端 web服务器 后端 可以说是 中间件 tomcat 微服务 1、tomcat 概述 tomcat就是处理动态页面的(动态页面:可以让用户进行交互的一种web的页面) Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免…

Ted靶机

信息收集: 靶机地址:https://www.vulnhub.com/entry/ted-1,327/ (1)ip扫描 nmap 192.168.254.0/24 -sn | grep -B 2 00:0C:29:FF:7F:9A (2)端口扫描 nmap -p- -A 192.168.254.159 (3&#x…

Docker——常用命令

1.Docker是做什么的? Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。它可以帮助我们下载应用镜像,创建并运行镜…

ubuntu20.04安装k8s和kubesphere

前提 已经安装docker 机器使用小写的hostname hostname建议你的机器把hostname改成小写,不然您会踩坑 官网的教程已经足够详实,推荐看官网教程 https://kubesphere.io/docs/v3.4/quick-start/all-in-one-on-linux/ 安装依赖 sudo apt install connt…

MySQL 查询分组内最新的第一条数据

目录 1、MySQL 5版本的写法 2、MySQL 8版本的写法 由于MySQL 5不支持窗口函数,因此不能使用PARTITION()、ROW_NUMBER() 🌰:获取每个班级中最新注册的学号人员信息 也就是从 user_info 学生表中获取每个 class_id 班级的最新一条记录 1、…

LogicFlow工作流在React和Vue3中的使用

LogicFlow 是一款流程图编辑框架,提供了一系列流程图交互、编辑所必需的功能和简单灵活的节点自定义、插件等拓展机制,方便我们快速在业务系统内满足类流程图的需求。 核心能力 可视化模型:通过 LogicFlow 提供的直观可视化界面&#xff0c…