C 这两个指针声明之间有什么区别?

C 这两个指针声明之间有什么区别?,c,posix,pipeline,C,Posix,Pipeline,这些声明是不同的还是产生相同的结果 char * const *argv; 及 是有区别还是两者都指向一个指针 背景是我正在编写一个C命令行shell,并将此结构用于命令: struct command { char * const *argv; }; 上面的结构用于调用exec。现在当我看另一个问题时,结构是不同的: 在这个问题上,实现相同目标的结构是不同的 它们完全不同: char*const*argv声明“指向常量的指针”指向字符的指针 const char**argv声明“

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

char * const *argv;

是有区别还是两者都指向一个指针

背景是我正在编写一个C命令行shell,并将此结构用于命令:

struct command
{
    char * const *argv;
};
上面的结构用于调用
exec
。现在当我看另一个问题时,结构是不同的:


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

它们完全不同:

char*const*argv声明“指向常量的指针”指向字符的指针

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

另外,
char**const argv声明“指向字符指针的指针”


要理解这些声明,请尝试“由内而外”阅读它们:

可能会有所帮助(再加上对您的案例进行一点推断)。@Shripada显示的代码中没有数组。只有指针。可能我对一件事很好奇。你真的是这个意思吗或者你的意思是==>>
const char*argv?@Michi我将尝试为这个问题添加一些背景知识。可能是因为键入错误。我想他的意思是
const char*argv。少了一颗星:)
struct command
{
    char * const *argv;
};