建立字串陣列

字串陣列可能意味著以下幾點:

  1. 元素為 char *s 的陣列
  2. 一個陣列,其元素是 chars 的陣列

我們可以像這樣建立一個字元指標陣列:

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 個位元組,因為我們必須包含空終止字元。