gpt4 book ai didi

c - 这两个指针声明有什么区别?

转载 作者:行者123 更新时间:2023-11-30 21:14:19 24 4
gpt4 key购买 nike

这些声明是不同的还是产生相同的结果?

char * const *argv;

const char **argv;

有区别还是都是指向指针的指针?

背景是我正在编写一个 C 命令行 shell 并使用这个结构体作为命令:

struct command
{
char * const *argv;
};

上面的结构体用于调用exec。现在,当我查看另一个问题时,结构有所不同:

Connecting n commands with pipes in a shell?

在这个问题中,实现相同目标的结构是不同的。

最佳答案

它们完全不同:

char *const *argv; 声明“指向 char 的 const 指针”;

const char **argv; 声明“指向 const char 的指针”;

此外,char **const argv; 声明“一个指向 char 的 const 指针”。

要理解这些声明,请尝试“从里到外”阅读它们:http://c-faq.com/decl/cdecl1.html

关于c - 这两个指针声明有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542083/

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