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;
};