16. 指针和引用的区别
1.指针和引用的区别1.指针和引用的区别a.指针 是一个独立的变量, 专门用来存储另一个变量的内存地址; 指针本身占用内存空间, 可指向不同的变量(甚至空地址)b.引用 是某个变量的别名(nickname)和原变量共享同一块内存空间, 没有自己独立的内存,本质上是编译器层面的语法糖a.初始化差异#include iostreamusingnamespacestd;intmain(){inta10;// 指针可未初始化不推荐野指针int*p1;// 合法但p1指向随机地址野指针危险int*p2a;// 正确初始化// 引用必须初始化否则编译报错// int ref1; // 错误引用必须初始化intref2a;// 正确ref2是a的别名return0;}b.指向/绑定修改差异#include iostreamusingnamespacestd;intmain(){inta10,b20;// 指针可修改指向int*pa;cout*pendl;// 输出10pb;// 指针指向bcout*pendl;// 输出20// 引用不能修改绑定对象看似修改实际是修改原变量intrefa;coutrefendl;// 输出10refb;// 不是绑定b而是把b的值赋给aa变成20coutaendl;// 输出20coutrefendl;// 输出20ref还是a的别名return0;}c.空值与语法使用差异#include iostreamusingnamespacestd;intmain(){// 指针可空int*pnullptr;// 空指针合法if(pnullptr){coutp是空指针endl;}// 引用不能空以下代码编译报错// int ref nullptr; // 错误引用必须绑定到有效变量// 语法使用指针需要解引用引用直接用intnum100;int*p_numnum;intref_numnum;cout*p_numendl;// 指针解引用访问值输出100coutref_numendl;// 引用直接访问值输出100coutp_numendl;// 指针自身的地址独立内存coutref_numendl;// 引用的地址 原变量num的地址无独立内存return0;}d.const修饰的差异#include iostreamusingnamespacestd;intmain(){intx5,y6;// const修饰指针两种场景constint*p1x;// 指向的内容不可改指针本身可改// *p1 10; // 错误p1y;// 正确int*constp2x;// 指针本身不可改指向的内容可改*p210;// 正确// p2 y; // 错误// const修饰引用限制引用的内容不可改constintrefx;// ref 10; // 错误不能修改const引用的内容x10;// 正确原变量可改引用值也会变coutrefendl;// 输出10return0;}

相关新闻

万和制药和安®复方氨基酸胶囊(8-11):换季时的优质健康伴侣

万和制药和安®复方氨基酸胶囊(8-11):换季时的优质健康伴侣

万和制药和安复方氨基酸胶囊(8-11)适合在换季时服用,核心在于其能针对性强化机体免疫力,帮助身体应对季节交替带来的各类健康挑战。 换季时节,尤其是春季、秋季与冬季交替之际,气温波动明显、空气干燥&…

2026/7/3 14:10:16 阅读更多 →
第1章 Java语言概述----注释(Comment)

第1章 Java语言概述----注释(Comment)

用于注解说明解释程序的文字就是注释。 Java中的注释类型:  单行注释  多行注释  文档注释 (java特有) 提高了代码的阅读性;调试程序的重要方法。 注释是一个程序员必须要具有的良好编程习惯。 将自己的思想通过注释先整理出来&#xff…

2026/7/3 14:10:20 阅读更多 →
第1章 Java语言概述----常见问题及解决方法

第1章 Java语言概述----常见问题及解决方法

1.7 常见问题及解决方法 源文件名不存在或者写错  当前路径错误  后缀名隐藏问题 类文件名写错,尤其文件名与类名不一致时,要小心  类文件不在当前路径下,或者不在classpath指定路径下声明为public的类应与文件名一致&#xff0c…

2026/7/3 14:10:22 阅读更多 →

最新新闻

韩剧 检察 | 官。。 全集

韩剧 检察 | 官。。 全集

分享文件: 正文五卷外传全《检…의 제안)》- 헤복 链接: https://pan.xunlei.com/s/VOwaVyvEfksuPN0-55H0E5nJA1?pwdd4u8 复制这段内容后打开「手机迅雷 App」即可获取。无需下载在线查看,视频原画享倍速播放

2026/7/4 10:56:24 阅读更多 →
Wireshark实战:IPv6邻居发现协议与扩展头深度解析

Wireshark实战:IPv6邻居发现协议与扩展头深度解析

1. 项目概述:为什么需要深入分析IPv6邻居发现?如果你已经用Wireshark抓过IPv4的包,觉得ARP请求应答、DHCP四步握手都了然于胸,那么初次接触IPv6流量时,很可能会感到一丝困惑。IPv6的世界里,没有广播&#x…

2026/7/4 10:52:24 阅读更多 →
基于阿诺尔德猫映射的图像加密:原理、Matlab实现与安全性分析

基于阿诺尔德猫映射的图像加密:原理、Matlab实现与安全性分析

1. 项目概述:当图像遇上混沌最近在整理一些老项目,翻到了几年前做的一个关于图像加密的Matlab实现,核心用的是阿诺尔德猫映射。当时觉得这个算法特别有意思,它把看似混乱无序的“混沌”和图像像素的“位置”巧妙地结合在了一起&am…

2026/7/4 10:50:23 阅读更多 →
AI工程化落地实战:生产环境稳定性与可观测性指南

AI工程化落地实战:生产环境稳定性与可观测性指南

1. 项目概述:这不是一本教科书,而是一份压在工具箱底的工程备忘录“人工智能工程指南(四)”这个标题乍看平平无奇,甚至有点像某本被翻旧了的技术手册续册。但如果你正卡在模型上线前最后一公里——API响应延迟突然飙升…

2026/7/4 10:50:23 阅读更多 →
终极指南:如何在Windows家庭版上免费启用远程桌面多用户会话

终极指南:如何在Windows家庭版上免费启用远程桌面多用户会话

终极指南:如何在Windows家庭版上免费启用远程桌面多用户会话 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 你是否曾经因为Windows家庭版不支持远程桌面而烦恼?或者需要在同一台电脑上同时…

2026/7/4 10:50:23 阅读更多 →
感应电机无速度传感器FOC控制与Simulink实现

感应电机无速度传感器FOC控制与Simulink实现

1. 项目背景与核心价值 感应电机无速度传感器FOC控制是工业驱动领域的一项关键技术突破。传统矢量控制依赖机械传感器获取转速信号,但速度传感器不仅增加系统成本,还降低了可靠性——据统计,工业现场约15%的电机故障源于编码器损坏。我们通过…

2026/7/4 10:48:22 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻