You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何理解w3schools中「函数内按引用传递」的C++示例?

C++引用传递修改外部变量的原理

你之前对局部变量的认知仅适用于值传递的场景,引用传递本身就是C++提供的、无需return即可修改外部变量的语法特性,核心逻辑如下:

  • swapNums函数的形参int &x、int &y不是普通的局部变量,而是实参的引用别名:相当于给main函数里的firstNum、secondNum分别起了个叫x、y的新名字,二者和原变量共享完全相同的内存空间,并不是独立的新变量。
  • 你在函数内部对x、y做的赋值操作,本质就是直接修改firstNum、secondNum对应的内存存储的值,自然不需要return就能把修改同步到函数外部。
  • 整个函数里只有临时变量z是真正的局部变量,函数执行结束后就会被销毁,不会影响外部变量。
  • 你可以对比值传递的写法void swapNums(int x, int y):这种写法里的x、y才是独立的局部副本,函数内部交换它们不会改变外部实参的值,这才符合你之前的认知。

内容的提问来源于stack exchange,提问作者rrowhe4d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:21:02