【C++】015、函数参数:值传递,指针传递,引用传递的区别 📅 发布时间:2026/7/8 2:27:27 👁️ 浏览次数: 一、本质区别1、值传递是赋值粘贴函数内获取的副本不影响外部2、指针传递的是“邮寄地址”可通过地址间接修改外部对象3、引用传递的是别名绑定可直接操作原对象二、比对对比维度值传递指针传递引用传递传递内容实参的副本全新拷贝实参地址拷贝地址值实参的别名底层也是地址能否修改外部实参不能改的是副本能通过解引用*ptr能直接操作原对象内存开销打拷贝整个对象小拷贝8字节地址小空值null风险无有空指针需判断空无引用必须事先绑定对象代码#include iostream #include string // 1. 值传递改的是副本 void byValue(std::string s) { s _copy; // 只影响局部副本 } // 2. 指针传递通过地址修改原对象 void byPointer(std::string* s) { if (s) { // 必须判空 *s _ptr; } } // 3. 引用传递直接修改原对象 void byReference(std::string s) { s _ref; } int main() { std::string str Hello; byValue(str); std::cout str std::endl; // 输出 Hello未变 byPointer(str); std::cout str std::endl; // 输出 Hello_ptr byReference(str); std::cout str std::endl; // 输出 Hello_ptr_ref }三、引用使用场景1、需要修改实参void swap(int a, int b) { int tmp a; a b; b tmp; }2、传递大对象只读不写使用const引用void printVector(const std::vectorint v) { // 避免拷贝百万个元素 for (int x : v) std::cout x; }3、保留派生类信息实现多态class Animal { virtual void speak(){} }; class Cat : public Animal { void speak() override {} }; void play(Animal a) { a.speak(); } // 传 Cat 也能正确调用 Cat::speak()4、运算符重载int operator[](size_t idx) { return data[idx]; }四、使用指针的场景1、参数可选可能为空2、需要动态改变指针指向的对象指针可指向另外的对象地址而引用不允许3、与C语言交互C语言没有引用使用指针传递void*
电玩城测评 3 种拳击机器人:海岸城实测,为什么有的只热闹一阵,有的能拉起 PK 复玩 电玩城老板看拳击机器人,第一眼通常会被“热闹”吸引:有人围着看,有人拿手机拍,孩子会喊,朋友会起哄。 但设备能不能长期跑起来,不能只看第一眼。很多新设备刚进场都热闹,真正拉开差距的是后面… 2026/7/8 2:25:27
ZYNQ XCZU27DR FreeRTOS TTC 定时器中断学习笔记 TTCTriple Timer Counter被称为三重定时器/计数器它是 PS 内部的一种硬件外设。一个 TTC 模块内部包含多个相互独立的定时器计数通道。每个通道都可以独立完成:周期定时;向上或向下计数;计数值匹配;溢出检测;产生中断&… 2026/7/8 2:25:27
第1篇:从“促销活动”的一堆 if-else 说起 第1篇:从“促销活动”的一堆 if-else 说起 摘要:电商促销的满减、打折、立减逻辑写在同一个方法里,导致代码臃肿、难以扩展。本文从真实痛点出发,揭示策略模式如何通过算法封装消除条件分支,并附上场景判断表。 本文是… 2026/7/8 2:25:27
面试官问我用没用过低代码平台,前端的饭碗还稳吗? 最近在找工作,面了几家公司之后发现一个挺有意思的现象——2026年的前端面试,几乎每一场都会被问到同一个问题:“你们团队用过低代码平台吗?”“平时工作中接触过快速开发工具没有?”“对JNPF这类低代码平台怎么看&… 2026/7/8 3:58:17
HyFormer: Revisiting the Roles of Sequence Modeling and Feature Interaction in CTR Prediction“ 论文笔记 推荐精排模型有两个非常重要的子模块,序列建模和特征交叉,这两个子模块一般先做序列建模学习用户兴趣表示, 再与非序列特征 concat 起来做特征交叉。OneTrans 试图用一个统一的 Transformer 来将这两个子模块统一起来,本文提出的 HyFormer 也… 2026/7/8 3:56:17
图片转PDF在线工具:JPG、PNG图片一键合并生成PDF 在日常办公和学习过程中,经常会遇到需要把图片转换成 PDF 的场景,例如: 手机照片整理成PDF文件扫描资料合并成一个文档多张图片发送给客户图片资料上传到只支持PDF的平台 如果直接发送大量图片,不仅管理麻烦,也容易出… 2026/7/8 3:51:52
2026年7月本地化AI搜索引擎优化策略 核心结论当前,以豆包、文心一言、通义千问等为代表的大语言模型已成为用户获取本地生活服务与企业信息的关键入口,对于连锁美业、社区门店、小微企业乃至集团型企业而言,在AI搜索中以标准化、权威化、多维度的方式呈现企业信息,正… 2026/7/8 3:51:52
多智能体动态加入与非均匀缩放控制实战指南 1. 项目概述:这不是“放大缩小”那么简单,而是多智能体协同的底层控制范式重构“分布式非均匀缩放控制与动态智能体加入”——光看这个标题,很多人第一反应是:“又一个论文味儿浓重的学术黑话?”但作为在多智能体系统&… 2026/7/8 3:49:52
系统架构与性能优化核心笔记:存储体系、互联网架构、微服务演进 一、计算机存储体系与性能瓶颈分析系统性能优化的本质,是抹平不同存储介质的速度鸿沟,所有架构优化、代码优化的底层逻辑,都围绕存储层级特性展开。1.1 多级存储层级与速度差异计算机采用分级存储架构,层级越靠近CPU,读… 2026/7/8 3:47:52
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58