gpt4 book ai didi

c++ - C 中的 C++ '*&' 等价于什么?它甚至存在吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:03:32 24 4
gpt4 key购买 nike

例如,如何在C中实现这段C++代码?

void someFunction(type *&outParamOnly) ;
returnType someOtherFunction() ;
...
returnType someOtherFunction()
{
type *data = NULL ;
someFunction(data) ;
...
}
...
void someFunction(type *&outParamOnly)
{
bool condition ;
int array_len ;
...
if(condition) // variable's value passed to this function stays as it was
return ;
...
outParamOnly = new type[array_len] ; // value is moddified and it's reflected in 'someOtherFunction'
...
}
...

我问是因为我不知道如何创建这样的等价物。复杂吗?事实上,我不太了解 C,但更了解 C++ 语法等。我习惯用 C++ 编写,一旦我尝试使用 C 来感受差异,我在尝试实现我想要的东西时表现不佳。我期待肯定的回答——有可能创造一些等价物,但它会比在 C++ 中运行得更快还是更慢?请回答。

最佳答案

最接近的等价物是指向指针的指针; **。 C 没有引用。

调用和函数略有不同;你必须发送一个指向变量的指针并在你想使用它时取消引用它:

void someFunction(type **outParamOnly)
...
*outParamOnly = whatever;
}

someFunction(&data);

这是 C 中相当典型的模式。

关于c++ - C 中的 C++ '*&' 等价于什么?它甚至存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18793907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com