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

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

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

引用与指针的核心区别


是否可以为空

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

是否可以修改指向

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

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

操作方式

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

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

内存级别

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

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

安全性

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

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

工业级怎么选


复制代码
* 优先用引用

* 必须用指针的情况;

	* 需要空置 nullptr
	
	* 需要指向不同对象
	
	* 需要操作内存地址
	
	* 低层驱动,需要嵌入式硬件操作
相关推荐
czq_268671948722 分钟前
Python打卡第46天
开发语言·python
Evand J3 小时前
【MATLAB例程介绍】(17)永磁同步电机(PMSM)基于自适应无迹卡尔曼滤波(AUKF)的电流噪声在线估计。测量噪声协方差自适应与转速估计对比仿真
开发语言·matlab·卡尔曼滤波·无迹卡尔曼滤波·pmsm·电机滤波
BaiPeter4 小时前
ZPL文件预览
开发语言·c++
悠仁さん7 小时前
【C++】哈希表
c++·算法·散列表
Severus_black9 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
噢,我明白了9 小时前
JAVA中的一些基础应用知识点
java·开发语言
时间的拾荒人10 小时前
Redis 入门详解:核心特性、重要文件与全局命令实战
开发语言·redis·面试
敲上瘾10 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
码途行者11 小时前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
旖旎夜光12 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习