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

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

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

引用与指针的核心区别


是否可以为空

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

是否可以修改指向

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

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

操作方式

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

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

内存级别

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

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

安全性

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

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

工业级怎么选


复制代码
* 优先用引用

* 必须用指针的情况;

	* 需要空置 nullptr
	
	* 需要指向不同对象
	
	* 需要操作内存地址
	
	* 低层驱动,需要嵌入式硬件操作
相关推荐
励志不掉头发的内向程序员1 分钟前
【LibreCAD 2D架构】RS_Line创建之后发生了什么?从图形容器到屏幕渲染
开发语言·c++·qt·学习·系统架构
夕除2 分钟前
redis--013
java·开发语言
object not found3 分钟前
Nuxt4去掉body中默认的边距
开发语言·后端·rust
Java后端的Ai之路12 分钟前
Git pull弹出vim编辑器完整排查指南
开发语言·人工智能·git·编辑器·vim
青少儿编程课堂2 小时前
威佐夫博弈(双堆取子游戏)解析
c++·python·算法·bfs·信息学竞赛
2501_941875286 小时前
从配置中心到动态管理的互联网工程语法演进与多语言实践分享
开发语言·python
hfywmsj6 小时前
广州餐饮铺位招租决策模型:多因子选址系统设计
开发语言·人工智能·python·广州餐饮铺位招租
努力的lpp8 小时前
php反序列化一(大白话版)
开发语言·web安全·php·ctf·反序列化
菜鸟~noob2338 小时前
【电子战】第03篇:CFAR(恒虚警)处理【含matlab代码】
开发语言·matlab
泡海椒9 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python