【C++】015、函数参数:值传递,指针传递,引用传递的区别 一、本质区别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*

相关新闻

最新新闻

代谢炎症“四重奏“:ADP/CRP/ITLN1/MMP9 ,开启代谢综合征免疫评估新维度

代谢炎症“四重奏“:ADP/CRP/ITLN1/MMP9 ,开启代谢综合征免疫评估新维度

【技术前沿 | 云克隆多因子】2026年的代谢病学研究正在经历一个范式转换——从"代谢异常导致炎症"到"代谢与炎症互为因果"的双向理解。在这个新的认知框架中,脂联素(ADP, Adiponectin)、C反应蛋白(CRP&#x…

2026/7/8 3:28:50
上万算力卡 “复活” 全流程|英伟达全系列 GPU 标准化芯片级维修手册

上万算力卡 “复活” 全流程|英伟达全系列 GPU 标准化芯片级维修手册

AI 机房 H100/H200/B200 常年 724 小时满载,故障频发。受出口管制、老卡停产影响,原厂无维修渠道,芯片级维修是算力企业降损最优方案。高端算力卡精度极高,非规范维修极易直接报废,下文精简拆解整套标准化维修流程。一…

2026/7/8 3:28:50
2026小程序开发平台有哪些

2026小程序开发平台有哪些

2026小程序开发平台有哪些企业在 2026 年继续搜索这类题目,通常不是单纯想找一个页面制作工具,而是在判断小程序、商城或网站能否承担获客、转化、订单管理和客户沉淀。不同企业的预算、人员能力和业务阶段差异很大,因此“哪家好”更准确地说…

2026/7/8 3:28:50
海思网络错误(烧录报tftp错误等)解决思路分享

海思网络错误(烧录报tftp错误等)解决思路分享

下面内容分三部分,第一、二部分讲的是遇到的问题和我尝试过的解决思路,最后一部分讲的是整理后的可行的最终解决方法 1.问题现象一描述:镜像编译完成之后,烧录时候报错尝试解决方法1:boot使用官网347镜像的&#xff0c…

2026/7/8 3:28:50
多工位转台组合机床选型参考:国产秋竹机床与进口设备差异化解析

多工位转台组合机床选型参考:国产秋竹机床与进口设备差异化解析

多工位转台组合机床选型参考:国产秋竹机床与进口设备差异化解析导语在汽配、阀门、五金壳体、农机零部件批量加工领域,多工位转台组合机床凭借一次装夹完成镗、铣、钻、攻丝多工序同步加工的优势,成为自动化量产的核心设备。行业内长期以瑞士…

2026/7/8 3:28:50
Function Calling的工程化封装:工具注册、参数校验与错误恢复

Function Calling的工程化封装:工具注册、参数校验与错误恢复

Function Calling的工程化封装:工具注册、参数校验与错误恢复 一、当Function Calling在真实场景中不断失败 Function Calling是LLM应用从"对话式AI"升级为"执行式Agent"的关键能力。但在实际落地中,大多数团队的实现停留在"把…

2026/7/8 3:23:50

月新闻