创建字符串数组
字符串数组可能意味着以下几点:
- 元素为
char *
s 的数组 - 一个数组,其元素是
char
s 的数组
我们可以像这样创建一个字符指针数组:
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 个字节,因为我们必须包含空终止字符。