这些声明是不同的还是产生相同的结果?
char * const *argv;
Run Code Online (Sandbox Code Playgroud)
和
const char **argv;
Run Code Online (Sandbox Code Playgroud)
是否存在差异或指针指针?
背景是我正在编写一个C命令行shell并将此结构用于命令:
struct command
{
char * const *argv;
};
Run Code Online (Sandbox Code Playgroud)
上面的结构用于调用exec.现在,当我查看另一个问题时,结构是不同的:
在那个问题中,实现相同的结构是不同的.
它们完全不同:
char *const *argv;声明"指向char的const指针";
const char **argv;声明"指向const char 指针的指针";
另外,char **const argv;声明" 指向char的指针的const指针".
要理解这些声明,请尝试"从里到外"阅读它们:http://c-faq.com/decl/cdecl1.html