gpt4 book ai didi

c++ - C++ 中的多重间接寻址有什么用?

转载 作者:可可西里 更新时间:2023-11-01 15:36:25 26 4
gpt4 key购买 nike

在什么情况下您可能希望在 C++ 中使用多重间接寻址(即 Foo ** 中的指针链)?

最佳答案

正如@aku 指出的,最常见的用法是允许在函数返回后对指针参数的更改可见。

#include <iostream>

using namespace std;

struct Foo {
int a;
};

void CreateFoo(Foo** p) {
*p = new Foo();
(*p)->a = 12;
}

int main(int argc, char* argv[])
{
Foo* p = NULL;
CreateFoo(&p);
cout << p->a << endl;
delete p;
return 0;
}

这将打印

12

但还有其他一些有用的用法,如以下示例所示,用于迭代字符串数组并将它们打印到标准输出。

#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
const char* words[] = { "first", "second", NULL };
for (const char** p = words; *p != NULL; ++p) {
cout << *p << endl;
}

return 0;
}

关于c++ - C++ 中的多重间接寻址有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71108/

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