---
# System prepended metadata

title: array 陣列

---

# array 陣列
陣列一個基礎的資料結構，為一種靜態的資料結構(static data structure)，在使用前須要先宣告大小。
```cpp=
int main(){
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    return 0;
}
```
陣列可以使用索引(index)來提取或儲存資料。
```cpp=
int main(){
    int arr[10];
    for(int i = 0;i < 10;i++)
        arr[i] = i*10;
    for(int i = 0;i < 10;i++)
        cout << arr[i] << " ";
    cout << endl;
    
    return 0;
}
```
前面的指標中可以動態分配記憶體，而陣列的記憶體也可以動態分配，叫做動態陣列，當我們使用完陣列之後將會把記憶體歸還，而此時這些記憶體的值將不可預測，有可能改變，也有可能不變。
```cpp=
#include <iostream>
using namespace std;
int main(){
    int * arr = new int[10];//動態配置記憶體
    for(int i = 0;i < 10;i++)
        arr[i] = i;
    for(int i = 0;i < 10;i++)
        cout << arr[i] << " ";
    delete [] arr;//將記憶體歸還
    cout << '\n' << "==============" << endl;
    for(int i = 0;i < 10;i++)
        cout << arr[i] << " ";
    
    return 0;
}
```