陣列

維基百科,自由的百科全書
跳轉到: 導覽搜尋

陣列是電腦程式語言上,對於「Array」的中文稱呼。它十分類似數學上的「矩陣」, 但是在電腦編程語言上,表示方法和意義上略有不同。

數學上的矩陣看起來像這樣:


a=\begin{bmatrix} 3 & 6 & 2 \\ 0 & 1 & -4 \\ 2 & -1 & 0\end{bmatrix}

而電腦上的陣列看起來像這樣,例如C語言中的陣列:

    int a[3][3]={ 
                    { 3,  6,  2 },
                    { 0,  1, -4 },
                    { 2, -1,  0 }
                 };

雖然陣列在各種電腦編程語言中的表示式略有不同,但是幾乎每一種編程語言都有這種結構和觀念,它已經不只是一種編程專用的術語,而是電腦運作中非常重要的技術和概念。當前電腦能夠顯示、列印中文字,都是陣列的觀念應用;字串也是基於數組的一種重要資料結構。資料庫也是陣列概念的一種擴充和延伸。

多維陣列[編輯]

普通陣列採用一個整數來作下標。多維陣列的概念特別是在數值計算和圖形應用方面非常有用。我們在多維陣列之中採用一系列有序的整數來標註,如在[ 3,1,5 ] 。這種整數列表之中整數的個數始終相同,且被稱為陣列的「維度」。關於每個陣列維度的邊界稱為「維」。維度為k的陣列通常被稱為k維。

程式設計[編輯]

數組設計之初是在形式上依賴內存分配而成的,所以必須在使用前預先請求空間。這使得數組有以下特性:

  1. 請求空間以後大小固定,不能再改變(資料溢位問題);
  2. 在內存中有空間連續性的表現,中間不會存在其他程式需要調用的資料,為此數組的專用內存空間;
  3. 在舊式程式語言中(如有中階語言之稱的C),程式不會對數組的操作做下界判斷,也就有潛在的越界操作的風險(比如會把資料寫在運行中程式需要調用的核心部份的內存上)。

因為簡單數組強烈倚賴電腦硬體之內存,所以不適用於現代的程式設計。欲使用可變大小、硬體無關性的資料類型,Java等程式設計語言均提供了更高級的資料結構:ArrayListVector動態陣列

參見[編輯]

外部連結[編輯]