gpt4 book ai didi

c++ - 当人们想在函数中操作指针时,为什么要传入一个双指针呢?

转载 作者:行者123 更新时间:2023-11-30 01:51:02 26 4
gpt4 key购买 nike

在查看代码时,我注意到人们在想要操作指针时将指向指针的指针传递给函数。

例子:我看到类似的东西

void increment_if_J (char ** ptr)
{
if (**ptr == 'J')
++(*ptr);
}

但是传递对指针的引用不是更有意义吗?

void increment_if_J (char * & ptr)
{
if (*ptr == 'J')
++(ptr);
}

这样您就不会创建额外的变量,也不必为令人困惑的“指针到指针”逻辑而绞尽脑汁。

最佳答案

您用 [c][c++] 标记了问题。

  • 在 C 中,答案很简单:没有引用,所以第二种方法不可行。

  • 在 C++ 中,两者都是有效的,并且主要是一种风格选择。有些人可能会觉得第一个会在调用站点更清楚指针可能会被函数修改。有些人可能更喜欢第一个,因为他们习惯于用 C 编码。有些人可能更喜欢第二个,因为你引用的原因。等等……

关于c++ - 当人们想在函数中操作指针时,为什么要传入一个双指针呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26592220/

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