gpt4 book ai didi

c++ - 带星号和符号的函数参数

转载 作者:搜寻专家 更新时间:2023-10-30 23:57:07 25 4
gpt4 key购买 nike

我在工作中有一个功能,我正在努力解决这个问题。

谁能解释这段代码在做什么?

unsigned int Function( BYTE *&, BYTE );

我从未见过带有*& 的参数。它用于多种功能。我试过在书中寻找答案并在网上寻找答案。我找不到有关此格式及其作用的任何信息。

如有任何帮助,我将不胜感激。

现在我看到了使用 *& 的功能,但从来没有像上面那样一起使用过。

此外,我知道返回值是无符号 int。 :)

我主要只是询问一个参数。

谢谢

最佳答案

在声明中

unsigned int Function( BYTE *&, BYTE );

*& 代表通过引用传递指针,这意味着在此函数中对指针所做的更改将对原始指针进行更改,而不是对其 复制。如果您需要修改指针而不是指针指向的对象,您可能希望通过引用传递指针。

@FredOverflow 的 example如下:

template< typename T>    
void paranoid_delete( T *&p)
{
delete p;
p = nullptr;
}

你也可以通过指针传递一个指针,看起来像这样:

void freeAndZero( void** ptr)
{
free( *ptr);
*ptr = 0;
}

如果没有引用,您只会更改指针的本地拷贝,不会影响调用者。

关于c++ - 带星号和符号的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078355/

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