【发布时间】:2016-08-01 05:23:51
【问题描述】:
这些声明是不同的还是产生相同的结果?
char * const *argv;
和
const char **argv;
有区别还是都是指针指向的指针?
背景是我正在编写一个 C 命令行 shell 并将这个结构用于命令:
struct command
{
char * const *argv;
};
上述结构用于调用exec。现在,当我查看另一个问题时,结构有所不同:
Connecting n commands with pipes in a shell?
在那个问题中,实现相同目标的结构是不同的。
【问题讨论】:
-
This entry in the C-faq 可能会有所帮助(加上对您的情况的一些推断)。
-
@Shripada 显示的代码中没有数组。只有指针。
-
我对一件事很好奇。你的意思是真的 ==>>
const char **argv;还是你的意思 ==>>const char *argv;? -
@Michi 我将尝试为问题添加一些背景。