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

函数指针参数传递bool变量的原理解析请求

指针传参修改外部变量的工作原理解析

这段代码是用指针传递实现函数修改外部变量的同时,用返回值返回状态码(比如操作是否成功),核心逻辑可以拆解成这几步:

  • 调用时传递变量地址
    首先你定义了bool result = false;,这个变量在内存里有专属的存储位置(比如某段内存地址0x1234)。调用fetchResult(&result, ...)时,&result是取地址运算符,它会把result的内存地址取出来,传给函数的第一个参数bool* result_p。
    此时result_p这个指针变量里存的就是result的内存地址,相当于它“指向”了result所在的内存空间。

  • 函数内部通过解引用修改原变量
    函数里的*result_p = resultValue;这行,*是解引用运算符,作用是“找到指针指向的内存地址里的那个变量”。简单说,*result_p就等价于你在外部定义的result变量,给它赋值就是直接修改result内存里的值。等函数执行完毕,外部的result就会被改成resultValue的值。

  • 和你熟悉的引用传参的区别
    你之前用的引用传参(比如bool& result),是给外部变量起了一个“别名”,函数里操作引用就等于直接操作原变量,编译器会自动处理地址相关的细节;而指针传参是手动传递地址,再手动解引用找到原变量。两者最终效果一致,但指针支持传递nullptr(如果函数允许的话),可以用来表示“这个输出参数是可选的”,而引用必须绑定一个有效变量,不能为null。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:47:13