建立字串陣列
字串陣列可能意味著以下幾點:
- 元素為
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 個位元組,因為我們必須包含空終止字元。