char **s 与 char *s[],何时以及如何使用它们?

标签 c pointers char

如果我使用 char *s[],我可以执行以下操作:

char *s[] = {"foo", "bar", "foobar", "whatever", "john", "doe"};

**s有什么区别?在这种情况下,如何使用 char **s 而不是 char *s[]

示例:int main (int argc, char **argv) 而不是 *argv[]

最佳答案

对于函数参数,没有区别。

否则:

char *s[];

s 是指向 char 的指针数组。和

char **s;

s 是指向 char 的指针。

如果您需要一个指向 char 的指针数组,则使用前者;如果您需要一个指向 char 指针的指针,则使用后者。

关于char **s 与 char *s[],何时以及如何使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782154/

相关文章:

创建具有不同长度的静态数组

c - 测试文件中字符串中的空格

c - 从 C 到 UAL 汇编的 UAL 汇编

c - 将指向函数的指针作为参数传递给具有多个参数的其他函数

c - 我的 C 程序出了什么问题?这是关于指针和选择排序的

c++ - 字符数组在 C++ 中不起作用

c++ - C 带有 char[] 的减法

将数组中的字母更改为 3 个不同的字母

c++ - 使用智能指针进行观察

java - 在 Java 中使用 Unsigned int 32 位?