news 2026/9/30 4:23:42

单片机/C/C++八股:(十七)C++ 中指针和引用的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
单片机/C/C++八股:(十七)C++ 中指针和引用的区别
上一篇下一篇
C 中 malloc/free 和 C++ 中 new/delete 有什么区别?

C++ 中指针和引用的区别

指针(Pointer)和引用(Reference)是 C++ 中两种用于间接访问对象的机制,但它们在本质、行为和使用规则上有根本区别。

  1. 本质不同:

    • 指针:是一个变量,存储的是另一个变量的内存地址。

    • 引用:是某个变量的别名(alias),不是独立对象,不占用额外存储空间(编译器通常用指针实现,但语义上不是指针)。

  2. 符号不同:

    • 指针:用*

    • 引用:用&

  3. 初始化要求:

    • 指针:可以不初始化(但使用前必须赋值),可指向nullptr。

    • 引用:必须在定义时初始化,且不能为 null,一旦绑定就不能更改。

  4. 可变性(是否可重新赋值):

    • 指针:可以改变指向(即可以指向其他对象)。

    • 引用:一旦绑定,终身不变,不能重新绑定到其他对象。

  5. 空值(null)支持:

    • 指针:可以为nullptr(或NULL)。

    • 引用:不能为 null,不存在“空引用”。

  6. sizeof 结果:

    • sizeof(指针):返回指针本身的大小(如 8 字节 on 64-bit)。

    • sizeof(引用):返回被引用对象的大小,因为引用就是别名。

  7. 作为函数参数:

    • 指针传参:传递的是地址的拷贝,可通过解引用修改原变量。

    • 引用传参:直接操作原变量,语法更简洁、安全(无空指针风险)。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 9:49:02

2026毕业季必备|实测不踩雷的AI写作+降重工具

根据2025-2026年的最新评测和市场趋势,以下是目前最流行且实用的AI论文写作工具推荐。这些工具已从简单的“生成文字”进化为覆盖选题、文献检索、大纲构建、内容撰写、图表生成、降重润色及格式排版的全流程助手。 🏆 第一梯队:全流程综合型…

作者头像 李华
网站建设 2026/8/23 9:49:02

【科技历史与纪录片】《中国救护》大型院前医疗急救纪录片:心/脑梗+胸痛+醉酒+中暑+低血糖+eFAST+镇定剂+白夜休休工作制

简介:《中国救护》由哔哩哔哩与西安笃影文化联合出品,是一档大型院前医疗急救纪录片,驻扎在三座城市一线急救工作现场,通过24小时纪实跟拍真实记录急救现场的工作状况,真实鲜活的院前急救案例,展现急救人员…

作者头像 李华
网站建设 2026/8/23 9:49:02

Ajax Fetch Axios三者的区别

Ajax Fetch Axios三者的区别 三者都用于网路请求,但是不同维度1,Ajax(Asynchronous Javascript and XML),一种技术统称2,Fetch,一个具体的API3,Axios,第三方库https://ax…

作者头像 李华
网站建设 2026/8/23 9:49:03

Ubuntu 22.04外接NVIDIA显卡驱动安装

我的NUC缺一个强大的图形处理硬件, 于是把之前吃灰的显卡坞翻了出来, 发挥点余热, 但是在此之前, 因为开源驱动 nouveau 驱动只能提供基础显示功能,无法调用GPU的加速能力。所以我还需要 彻底禁用nouveau驱动 nouveau是Ubuntu默认的开源驱动,必须禁用&am…

作者头像 李华
网站建设 2026/8/23 9:49:03

性能调优实战:数据库连接条件下推原理与案例拆解

文章目录引言一、问题背景1.1 客户场景中的典型痛点1.2 业界普遍面临的两大难点1.2.1 语义安全性(Equivalence)1.2.2 代价评估(Cost)二、传统方案的局限三、金仓数据库基于代价的连接条件下推设计3.1 能不能推:等价性判…

作者头像 李华
网站建设 2026/8/23 9:49:03

怎么把swagger加入到项目中

怎么把swagger加入到项目中12和3/*** 配置类,注册web层相关组件*/ Configuration Slf4j public class WebMvcConfiguration extends WebMvcConfigurationSupport {/*** 通过knife4j生成接口文档* return*/Beanpublic Docket docket() {ApiInfo apiInfo new ApiInfo…

作者头像 李华