C++中引用与指针的选择

引用是 "受限制、更安全的指针"

指针是 "全能但危险的地址工具"

引用与指针的核心区别


是否可以为空

复制代码
 * 指针可以为空,即 nullptr
 
 * 引用不能为空,必须一开始就绑定变量
c++ 复制代码
int* p = nullptr;  // 合法
int& r;  // 错误*

是否可以修改指向

复制代码
* 指针可以随时指向别的变量

* 引用一旦绑定,终身不能换对象

操作方式

复制代码
* 指针需要解引用才能访问值

* 引用可以直接用,像普通变量一样

内存级别

复制代码
* 指针是独立变量,占内存,8个字节

* 引用不占额外内存,编译之后就是指针

安全性

复制代码
* 指针很危险,可以乱跳、越界、空指针

* 引用很安全,不会为空,不会乱跳,不易出错

工业级怎么选


复制代码
* 优先用引用

* 必须用指针的情况;

	* 需要空置 nullptr
	
	* 需要指向不同对象
	
	* 需要操作内存地址
	
	* 低层驱动,需要嵌入式硬件操作
相关推荐
青 春 记 忆1 分钟前
零基础入门Python11|Git实战:为任务管理器建立版本历史
开发语言·git·vscode·python·python3.11
余额瞒着我当琳2 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++
坐吃山猪2 小时前
WebClient内存配置解析
开发语言·springboot·webflux
jdksjw3 小时前
同步与异步、阻塞与非阻塞、多线程、协程超详细讲解(Python并发编程从入门到精通)
开发语言·python
Zach_菠萝侠3 小时前
【DeepSeek Harness 研究】进化方向4:安全加固 思考、设计与实现
开发语言·安全·deepseek
ShineWinsu3 小时前
对于C++:布隆过滤器(bloomfilter)的详细解析
c++·面试·位图·位运算·布隆过滤器·海量数据·比特位
SL-staff3 小时前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
SomeB1oody4 小时前
【RustyML入门】6.0. 数学工具
开发语言·后端·机器学习·rust·教程
进制树5 小时前
【飞控开发实战·⑲】ROS2无人机开发环境搭建:Jazzy安装、工作空间与hello_drone节点实战
开发语言·安全·无人机·课程设计
牛马也想出海5 小时前
亚马逊爬虫代理IP:IP类型选择与配置指南
开发语言·php