任何編程語言中的數組都是存儲在連續內存位置的相同類型的數據項的集合,並且可以使用數組中的整數索引隨機訪問元素。存儲的數據可以是任何類型,如基本數據類型(int、float、double、char等)或派生數據類型,如結構、指針等)。
我們需要一個數組來避免聲明單獨的變量,比如number0, number1,…,和number99,而不是把它們俱樂部在一個單一的數組變量。所有數組都有連續的內存位置,其中最低地址對應第一個元素,最高地址對應最後一個元素。
我們可以在c++中通過指定元素的類型和它所需要的元素數量來聲明c++數組。
類型arrayName [arraySize];
這叫做1-D數組。arraySize必須是一個大於零的整數常量,type可以是任何有效的c++數據類型(泛型或派生型)。例如,下麵這行聲明了一個有20個元素的數組,名為numRecords,類型為int
int numRecords [20];
c++數組元素每次初始化一個,或者在單個語句中初始化,如下所示。請注意,初始化器的數量不能超過數組的容量。
//每次初始化一個數組(i=0;i<6;i++) {numRecords[i] = (i+1);} //一次初始化數組int numRecords[6] = {1,2,3,4,5,6};
您可以通過在具有適當索引值的數組名稱中進行索引來訪問任何數組。這是通過將元素的索引放在數組名稱後麵的方括號內來實現的。例如:
int currentRecord = numRecords[2];
上麵的語句將從數組中獲取第二個元素,並將該值賦給currentRecord變量。
數組在c++中的優勢如下:
- 它使用數組索引提供對元素的隨機訪問。
- 當我們使用更少的代碼行來創建一個包含多個元素的數組時,程序代碼打印就會減少。
- 它可以方便地訪問所有元素。
- 讓我們編寫一個簡單的代碼來顯示數組上的所有操作。
- 使用for循環,數組遍曆變得很容易。
- 排序和搜索變得很容易
然而,與任何其他數據結構一樣,它也有其缺點。數組是一種非靈活的數據結構,這意味著隻能輸入在聲明時決定的固定數量的元素。與LinkedList不同,數組的大小不能動態調整。這使得插入和刪除元素的成本很高。如果聲明一個大小為20的數組,則該數組將包含索引0到19的元素。但如果我們試圖訪問索引為10或大於10的元素,就會導致未定義行為。
多維數組可以被描述為“數組的數組”。例如,二維數組可以想象為一個由元素組成的二維表,所有元素都具有相同的統一數據類型。如。
// 2D數組存儲3X3矩陣的元素int mat[3][3];要從第二行訪問第二個元素,我們可以寫x =mat[1][1];
數組可以作為參數通過引用傳遞給函數調用。這意味著該函數可以直接訪問和更改傳遞的數組的內容。在傳遞二維數組作為形式參數時,可以省略第一個維度的大小,但必須指定第二個維度的大小。例如:
void displayArray(int Mat[][3],int numRows, int numCols);
我們可以通過提供一個如下所示的二維數組來調用這個函數:
Int main(){…arr int [4] [3];....顯示(arr, 4,3);}