若有2113說明:int a[][3]={1,2,3,4,5,6,7};則陣列a第一維的大小是3。 int a[][]:第5261一箇中括號表示有此4102二維陣列有幾行,第二個表1653示有幾列。 故int a[][3]={1,2,3,4,5,6,7};說明此陣列有n行,3列;也就是說每行有三個元素,所以第一行有1,2,3 這三個元素,第二行有4,5,6三個元素,第三行有7這個元素,不足的兩個元素由0來補足。 對陣列進行初始化,要麼兩個維度都不寫,由賦值的陣列確定,或者第二維可以不寫,第一維要寫,再由賦值陣列確定。 陣列中的下標是從 0 開始的(而不是 1)。那麼,如何透過下標表示每個陣列元素的呢?透過“陣列名[下標]”的方式。例如“int a[5];”表示定義了有 5 個元素的陣列 a,這 5 個元素分別為 a[0]、a[1]、a[2]、a[3]、a[4]。其中 a[0]、a[1]、a[2]、a[3]、a[4] 分別表示這 5 個元素的變數名。 如果從 1 開始,那麼陣列的第 5 個元素就是 a[5],而定義陣列時是 int a[5],兩個都是 a[5] 就容易產生混淆。而下標從 0 開始就不存在這個問題了!所以定義一個數組 a[n],那麼這個陣列中元素最大的下標是 n–1;而元素 a[i] 表示陣列 a 中第 i+1 個元素。 另外,方括號中的常量表達式可以是“數字常量表達式”,也可以是“符號常量表達式”。但不管是什麼表示式,必須是常量,絕對不能是變數。 C 語言不允許對陣列的長度進行動態定義,換句話說,陣列的大小不依賴程式執行過程中變數的值。非通常的情況為動態記憶體分配,此種情況下陣列的長度就可以動態定義。
若有2113說明:int a[][3]={1,2,3,4,5,6,7};則陣列a第一維的大小是3。 int a[][]:第5261一箇中括號表示有此4102二維陣列有幾行,第二個表1653示有幾列。 故int a[][3]={1,2,3,4,5,6,7};說明此陣列有n行,3列;也就是說每行有三個元素,所以第一行有1,2,3 這三個元素,第二行有4,5,6三個元素,第三行有7這個元素,不足的兩個元素由0來補足。 對陣列進行初始化,要麼兩個維度都不寫,由賦值的陣列確定,或者第二維可以不寫,第一維要寫,再由賦值陣列確定。 陣列中的下標是從 0 開始的(而不是 1)。那麼,如何透過下標表示每個陣列元素的呢?透過“陣列名[下標]”的方式。例如“int a[5];”表示定義了有 5 個元素的陣列 a,這 5 個元素分別為 a[0]、a[1]、a[2]、a[3]、a[4]。其中 a[0]、a[1]、a[2]、a[3]、a[4] 分別表示這 5 個元素的變數名。 如果從 1 開始,那麼陣列的第 5 個元素就是 a[5],而定義陣列時是 int a[5],兩個都是 a[5] 就容易產生混淆。而下標從 0 開始就不存在這個問題了!所以定義一個數組 a[n],那麼這個陣列中元素最大的下標是 n–1;而元素 a[i] 表示陣列 a 中第 i+1 個元素。 另外,方括號中的常量表達式可以是“數字常量表達式”,也可以是“符號常量表達式”。但不管是什麼表示式,必須是常量,絕對不能是變數。 C 語言不允許對陣列的長度進行動態定義,換句話說,陣列的大小不依賴程式執行過程中變數的值。非通常的情況為動態記憶體分配,此種情況下陣列的長度就可以動態定義。