C语言创建字符串数组

例子

字符串数组可能意味着两件事:

  1. 元素为char *s的数组

  2. 其元素的数组的数组char小号

我们可以像这样创建一个字符指针数组:

char * string_array[] = {
    "foo",
    "bar",
    "baz"
};

请记住:当我们将字符串文字分配给时char *,字符串本身将分配在只读内存中。但是,该数组string_array分配在读/写内存中。这意味着我们可以修改数组中的指针,但不能修改它们指向的字符串。

在C语言中,main的参数argv(程序运行时传递的命令行参数数组)为char *:的数组char * argv[]。

我们还可以创建字符数组的数组。由于字符串是字符数组,所以字符串数组只是其元素是字符数组的数组:

char modifiable_string_array_literals[][4] = {
    "foo",
    "bar",
    "baz"
};

这等效于:

char modifiable_string_array[][4] = {
    {'f', 'o', 'o', '\0'},
    {'b', 'a', 'r', '\0'},
    {'b', 'a', 'z', '\0'}
};

注意,我们指定4为数组第二维的大小;我们数组中的每个字符串实际上都是4个字节,因为我们必须包含以null结尾的字符。