gpt4 book ai didi

c++ - 用于多级指针取消引用?

转载 作者:IT老高 更新时间:2023-10-28 14:01:09 25 4
gpt4 key购买 nike

什么时候在任何语言中使用指针都需要使用多个指针,比如说三重指针。何时使用三重指针而不是仅使用常规指针有意义?

例如:

char  * * *ptr;

而不是

char *ptr;

最佳答案

每个星都应该读作“指针指向的”所以

char *foo;

是“指针 foo 指向的字符”。不过

char *** foo;

是“由指针指向的指针指向的字符,该指针指向指向指针 foo 的指针”。因此 foo 是一个指针。在那个地址是第二个指针。在那个指向的地址是第三个指针。取消引用第三个指针会产生一个字符。如果这就是它的全部内容,那么很难为此做很多事情。

不过,仍然可以完成一些有用的工作。想象一下,我们正在编写 bash 或其他一些过程控制程序的替代品。我们希望以面向对象的方式管理进程的调用...

struct invocation {
char* command; // command to invoke the subprocess
char* path; // path to executable
char** env; // environment variables passed to the subprocess
...
}

但我们想做一些花哨的事情。我们希望有一种方法可以浏览每个子进程看到的所有不同的环境变量集。为此,我们将调用实例中的每一组 env 成员收集到一个数组 env_list 中,并将其传递给处理它的函数:

void browse_env(size_t envc, char*** env_list);

关于c++ - 用于多级指针取消引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/758673/

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