数组

维基百科,自由的百科全书
跳转至: 导航搜索

数组是電腦编程语言上,對於「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動態陣列

参见[编辑]

外部鏈接[编辑]