将指针参数传递给函数?

问题描述 投票:0回答:1

我见过并编写过传递更新对象引用参数的函数,因为我需要返回代码,或者需要在一个函数中更改多个变量。

现在我看到了如下所示的代码,我很难理解当函数签名是指针时如何/为什么将 bool 变量(位于代码片段底部)作为引用传递,并分配使用 *?

返回值

这是如何运作的?我可以要求解释吗?我尝试谷歌指针参数等,但找不到此类问题的答案。

// header file 
int fetchResult(bool* result_p, const Info& info, int section)

// implementation
int fetchResult(bool* result_p, const Info& info, int section)
{
…
*result_p = resultValue;
…
return 0;
}

// usage 
bool result = false;
fetchResult(&result, info, section);
c++ function pointers parameters
1个回答
0
投票

将函数参数作为引用或指针传递都允许函数写回参数(当不是

const
ofc 时),并允许多个返回值。 这两个调用的处理方式几乎相同,唯一的区别是引用不能为空,但指针可以为空。因此,通常首选使用引用调用,因为它可以节省一次 null 检查。

通过指针传递的作用是允许可选参数,因为调用者只需传递

nullptr
即可获得不需要的附加返回值。

当通过 const-ref 传递时(如您的示例中所示),该参数并不是作为返回值,而是作为输入值来避免复制(通常是出于性能原因)。

© www.soinside.com 2019 - 2024. All rights reserved.