news 2026/9/3 2:56:30

16. 指针和引用的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
16. 指针和引用的区别

1.指针和引用的区别


1.指针和引用的区别

a.指针 是一个"独立的变量, 专门用来存储另一个变量的内存地址; 指针本身占用内存空间, 可指向不同的变量(甚至空地址)"b.引用 是"某个变量的别名(nickname)和原变量共享同一块内存空间, 没有自己独立的内存",本质上是编译器层面的"语法糖"

a.初始化差异#include <iostream>usingnamespacestd;intmain(){inta=10;// 指针:可未初始化(不推荐,野指针)int*p1;// 合法,但p1指向随机地址(野指针,危险)int*p2=&a;// 正确初始化// 引用:必须初始化,否则编译报错// int& ref1; // 错误:引用必须初始化int&ref2=a;// 正确:ref2是a的别名return0;}

b.指向/绑定修改差异#include <iostream>usingnamespacestd;intmain(){inta=10,b=20;// 指针:可修改指向int*p=&a;cout<<*p<<endl;// 输出:10p=&b;// 指针指向bcout<<*p<<endl;// 输出:20// 引用:不能修改绑定对象(看似修改,实际是修改原变量)int&ref=a;cout<<ref<<endl;// 输出:10ref=b;// 不是绑定b,而是把b的值赋给a(a变成20)cout<<a<<endl;// 输出:20cout<<ref<<endl;// 输出:20(ref还是a的别名)return0;}

c.空值与语法使用差异#include <iostream>usingnamespacestd;intmain(){// 指针:可空int*p=nullptr;// 空指针,合法if(p==nullptr){cout<<"p是空指针"<<endl;}// 引用:不能空(以下代码编译报错)// int& ref = nullptr; // 错误:引用必须绑定到有效变量// 语法使用:指针需要解引用,引用直接用intnum=100;int*p_num=&num;int&ref_num=num;cout<<*p_num<<endl;// 指针:解引用访问值,输出100cout<<ref_num<<endl;// 引用:直接访问值,输出100cout<<&p_num<<endl;// 指针自身的地址(独立内存)cout<<&ref_num<<endl;// 引用的地址 = 原变量num的地址(无独立内存)return0;}

d.const修饰的差异#include <iostream>usingnamespacestd;intmain(){intx=5,y=6;// const修饰指针:两种场景constint*p1=&x;// 指向的内容不可改,指针本身可改// *p1 = 10; // 错误p1=&y;// 正确int*constp2=&x;// 指针本身不可改,指向的内容可改*p2=10;// 正确// p2 = &y; // 错误// const修饰引用:限制引用的内容不可改constint&ref=x;// ref = 10; // 错误:不能修改const引用的内容x=10;// 正确:原变量可改,引用值也会变cout<<ref<<endl;// 输出:10return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:27:21

添加组件到idf项目中

在 ESP-IDF 工程里&#xff0c;把“旧驱动”从工程里剔除、再把“新驱动”放进 components/ 作为组件&#xff0c;核心就是两件事&#xff1a;组件目录结构 CMake 注册/依赖关系。你给的这个工程本身就是标准 ESP-IDF 工程结构&#xff08;根目录有 components/、main/、顶层 …

作者头像 李华
网站建设 2026/9/2 21:27:44

双向守护 物业健康一体机守护业主与员工安心

物业服务行业涵盖安保、保洁、工程维修、客服等多个岗位&#xff0c;一线员工直接对接业主日常起居&#xff0c;其身体健康状况不仅关系到自身履职安全&#xff0c;更关联着园区公共安全与业主生活体验。健康检测作为物业用工管理与园区服务的关键环节&#xff0c;传统人工登记…

作者头像 李华
网站建设 2026/9/3 1:00:40

汽车脏污检测与识别 - YOLO11-C3k2-PSFSConv优化模型详解

CarCleanliness数据集是一个专注于汽车脏污检测与识别的数据集&#xff0c;采用YOLOv8格式标注&#xff0c;共包含670张图像。该数据集由qunshankj平台提供&#xff0c;遵循CC BY 4.0许可协议&#xff0c;于2025年6月30日创建。数据集涵盖了汽车多个区域的脏污情况&#xff0c;…

作者头像 李华
网站建设 2026/9/2 7:22:39

短效代理IP有哪些使用场景?

短效代理IP作为企业级网络服务中的一种灵活工具&#xff0c;正逐渐在多个高频应用场景中展现出独特价值。那么短效代理IP适合用在哪些业务中&#xff1f;是否比长期IP更具优势&#xff1f;本文将围绕这些问题&#xff0c;深入解析短效代理IP的定义、典型应用场景以及选择建议&a…

作者头像 李华
网站建设 2026/9/2 21:27:52

收藏!AI入行避坑指南:招聘乱象背后,小白/程序员如何少走弯路

当下&#xff0c;AI领域的热度居高不下&#xff0c;无论是在职程序员想转岗深耕&#xff0c;还是零基础小白想跨界入行&#xff0c;都把AI当成了“新风口”。但很多人一头扎进去才发现&#xff0c;这条路远比想象中坎坷&#xff0c;甚至越努力越迷茫。 其实&#xff0c;AI入行…

作者头像 李华