当前位置: 首页 > news >正文

c++入门:函数实参形参傻傻分不清?如何改变实参!

值传递是 C++ 中最基本的参数传递方式。

它的核心意思是:

当你把一个变量作为参数传给函数时,函数得到的是这个变量的一个副本,而不是变量本身

所以在函数内部修改这个副本,外部的原变量纹丝不动。


📦 举个生活例子

你把一张照片的复印件交给朋友,朋友在复印件上画画。你手里的原照片一点没变。这里的复印件就是“形参”,你手里的原照片就是“实参”。

void change(int x) { // x 是形参 x = 100; // 修改的是 x } int main() { int a = 10; change(a); // 把 a 的值“复印”一份给 x cout << a << endl; // a 还是 10 }

为什么 a 没变?
因为当调用change(a)时,系统在内存中新建了一个变量x,并把a的值(10)复制x。从此xa就是两个独立的变量,只是初始值相同。在函数内修改x,完全不影响外面的a

比喻
你有一张写着数字10的纸条(a)。你把它复印了一份(x),然后在复印件上改成100。原来的纸条依然是10,没有变化。

🛠 如何修改实参?(两种常用方法)

如果我们希望函数内部能够改变外面的变量,就需要让函数“拿到”变量本身,而不是复印件。C++ 提供了两种方式:指针传递引用传递

二者的重点都在于函数的参数列表!

1. 指针传递(传地址)

void change(int *p) { // p 是一个指针,存储地址 *p = 100; // 通过地址找到变量,修改它 } int main() { int a = 10; change(&a); // 把 a 的地址交给函数 cout << a << endl; // 输出 100,a 被修改了 }

解释

  • &a是 a 的地址(可以想象成 a 家的门牌号)。

  • 函数收到地址后,用*p去“敲门”,直接修改了 a 家的值。

比喻
你直接告诉别人你家的门牌号(地址),他按地址找到你家,进去把数字改成100。这样原来那张纸条(a)上的数字就变了。

2. 引用传递(C++ 特有,更简洁)

void change(int &x) { // x 是 a 的别名(引用) x = 100; // 修改 x 就是修改 a } int main() { int a = 10; change(a); // 直接传 a,但函数参数是引用 cout << a << endl; // 输出 100 }

解释
int &x表示 x 是某个整数的“别名”。在调用时,x直接绑定到a,所以对x的操作就是对a的操作。这就像给 a 起了个小名,叫小 a,叫小 a 就是叫 a。

比喻
你给变量 a 取了个外号叫“x”,叫“x”的时候就是在叫 a。所以改 x 就是改 a。

🌟 总结

  • 值传递:形参是实参的副本,修改形参不影响实参。

  • 要修改实参,必须传递地址(指针)或使用引用

  • 引用在 C++ 中更常用,因为它写法简单,且能明确表达“我要修改实参”的意图。

http://www.jsqmd.com/news/583416/

相关文章:

  • 从火柴盒到AI:探索MENACE的数字化旅程
  • 基于单片机的婴儿看护系统设计
  • GHelper终极指南:用轻量化工具彻底替代Armoury Crate,释放华硕ROG笔记本全部性能!
  • 全双工和半双工的区别
  • 解锁论文写作新境界:书匠策AI——学术探索的智能导航灯
  • XZ8011双节8.4V充电芯片 输入电压8.9-15V
  • 无缝跨平台体验:APK-Installer让Windows运行Android应用的革命性工具
  • 夸克扫码登录
  • STM32时钟频率与耗电量这一块
  • 怎样评估数据化管理?数据化管理如何持续改进?
  • 字符串(Updating)
  • 2026年4月市面上铜狮子生产厂家,铜钟/人物雕塑/铜马/铜大缸/关公铜像/铜麒麟/铜大象/铜佛像,铜狮子铸造厂哪家好 - 品牌推荐师
  • 清明节海报设计指南:4个要点打造高级感视觉呈现
  • 让 AI 自己进化自己:深入 HyperAgents
  • 2026年关投强媒体发稿行业口碑分析:真实客户反馈与核心优势测评 - 发稿平台推荐
  • 核心算法与关键技术突破 ——空间计算操作系统的底层原理创新与工程级实现路径
  • FreeRTOS 工程化要点:任务划分、优先级设计与 CPU 占用率监控
  • SIP协议(GB/T 28181)Wireshark抓包内容汇总
  • 文件夹的修改日期可以改吗?分享你三个修改方法
  • 每日温度-leetcode
  • 2026夏天不喜欢穿短裤?透气值和凉感超国标、尺码32个覆盖100斤到290斤——龙牙隐腾到底有多能打? - 行业深度观察
  • 构建nfs provisioner网络存储
  • linux异常报警推送企业微信群聊机器人
  • 穿棕机品牌大比拼:2026年哪些品牌脱颖而出?穿筘机配件/自动穿棕机/穿筘/穿综机配件,穿棕机公司口碑推荐 - 品牌推荐师
  • CLAUDE.md和skill.md有什么不同
  • 2026年市场打印机企业,市场正规的打印机供货商鼎思科技诚信务实提供高性价比服务 - 品牌推荐师
  • 用-ChatGPT-赚钱-使用-AI-轻松在线赚取被动收入的指南
  • 由-ChatGPT-打造的-100-个令人惊叹的电子邮件模板
  • python_12
  • 与机器对话-ChatGPT-和-AI-语言模型的奇妙故事