陣列起始設定

陣列的起始設定元是以逗點區隔的常數表示式清單,以大括弧 ({ }) 括住。 起始設定元之前會有等號 (=)。 您不需要起始設定陣列中的所有元素。 如果陣列已局部起始設定,則未起始設定的元素會收到適當類型的值 0。 這同樣適用於具有靜態儲存期間的陣列元素。 (以 static 關鍵字宣告的所有檔案範圍變數及函數範圍變數都具有靜態儲存期間。)

有兩種方法可指定陣列的起始設定程式:
  • 使用 C89-style 起始設定元,陣列元素必須依下標順序起始設定。
使用 C89-style 起始設定程式,下列定義會顯示完全起始設定的一維陣列:
static int number[3] = { 5, 7, 2 };
陣列 number 包含下列值: number[0] is 5number[1] is 7; number[2] is 2。 當您在下標宣告元中有一個表示式定義元素數 (在此情況下為 3) 時,您的起始設定元數不能超過陣列中的元素數。
下列定義顯示局部起始設定的一維陣列:
static int number1[3] = { 5, 7 };
number1[0]number1[1] 的值與前一個定義中的值相同,但 number1[2]0
下列一維陣列定義為指定的每一個起始設定元定義一個元素,而不是下標宣告元中定義元素數目的表示式:
static int item[ ] = { 1, 2, 3, 4, 5 };
編譯器提供 item 五個已起始設定的元素,因為未指定大小,且有五個起始設定元。