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

C++函数引用参数(&)的作用及程序输出结果答疑

在C++参数中使用&对程序运行的影响及代码计算解析

问题1:参数中使用&会改变程序运行方式吗?

会的。C++中函数参数前的&表示引用传递,它不会像值传递那样复制实参的副本,而是直接绑定到实参的内存地址上——也就是说,在函数内对引用参数的修改,会直接作用于原实参本身,这会彻底改变函数对外部变量的影响逻辑,和值传递的行为完全不同。

问题2:给定程序的输出计算

先一步步拆解代码执行流程:

  1. main函数初始状态:a=1,b=5,c=30
  2. 调用f(a, b):
    • x是值传递,接收a的副本,初始值为1;
    • y是引用传递,直接绑定main中的b,操作y等同于操作b
  3. 进入f函数执行:
    • x = x + y:x = 1 + 5 = 6(这里x是副本,不影响a)
    • y = x + 2:y = 6 + 2 = 8——因为y是b的引用,所以main中的b现在被修改为8
    • return (x + 5):返回6 + 5 = 11,main中的c被赋值为11
  4. 计算a + b + c:1 + 8 + 11 = 20

所以程序输出是20,对应选项E。

你之前计算错误的原因是忽略了引用参数对实参的修改——你误以为b还是初始的5,但实际上函数f里对y的修改已经把main中的b改成8了,这就是引用传递带来的关键变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:31:16