1. 一维数组
- 静态 int array[100]; 定义了数组array,并未对数组进行初始化
- 静态 int array[100] = {1,2}; 定义并初始化了数组array
- 动态 int* array = new int[100]; delete []array; 分配了长度为100的数组array
- 动态 int* array = new int[100]{1,2}; delete []array; 为长度为100的数组array初始化前两个元素
2. 二维数组
- 静态 int array[10][10]; 定义了数组,并未初始化
- 静态 int array[10][10] = { {1,1} , {2,2} }; 数组初始化了array[0][0,1]及array[1][0,1]
- 动态 int (*array)[n] = new int[m][n]; delete []array; // in c++11: auto array = new int[m][n]
- 动态 int** array = new int*[m]; for(i) array[i] = new int[n]; for(i) delete []array[i]; delete []array; 多次析构
- 动态 int* array = new int[m*n]; delete []array; 数组按行存储
- 注意这种方式不可用: int **array = new int[m][n];