1.数组概论
- 数组是一种按顺序存储的数据结构,可以使用下标进行随机化访问。
2.静态数组
2.1 一维数组
- 使用顺序存储,可以随时改变其中内容。
- 申请方式:
| 语言 | 申请方式 |
|---|---|
| java | 数组类型 变量名[]=new 数组类型[个数] |
| c++ | 数组类型 变量名[个数] |
- 存储方式:在内存中连续存储。
2.2 二维数组和多维数组
- 二维数组是使用数组作为数组的元素进行存储,多维数组是迭代这个过程。
- 申请方式:
| 语言 | 申请方式 |
|---|---|
| java | 数组类型 变量名[][]=new 数组类型[行数][列数] |
| c++ | 数组类型 变量名[行数][列数] |
- 存储方式:
依次存储,第一行存完后开始存第二行。
3.动态数组
3.1一维动态数组
- 一维动态数组是在不确定数组元素有多少个时使用。
- 申请方式:
|语言|申请方式|
|-|-|
|java|数组类型 变量名[]=new 数组类型[n]|
|c++|数组类型 *变量名[]=new 数组类型[n] | - 存储方式:
动态向系统申请存储空间,依次存储。 - 注:
c++使用完需要使用delete 变量名删除申请的空间,java则不需要。
3.2 二维动态数组和多维动态数组
- 二维动态数组是使用数组作为数组的元素进行存储,多维动态数组是迭代这个过程。
- 申请方式:
| 语言 | 申请方式 |
|---|---|
| java | 数组类型 变量名[][]=new 数组类型[n][m] |
| c++ | 指针指向一维数组的指针,见代码 |
- 代码
int **a;
a=new int*[m]//设置行
for(int i=0;i<m;i++){
a[i]=new int[n];//设置列
}
...
for(int j=0;j<m;j++){
delete(a[j]);
}
delete a;
- 存储方式:
动态向系统申请存储空间,依次存储。
4.总结
| 类型 | 语言 | 申请方式 |
|---|---|---|
| 一维数组 | java | 数组类型 变量名[]=new 数组类型[个数] |
| 一维数组 | c++ | 数组类型 变量名[个数] |
| 二维数组 | java | 数组类型 变量名[][]=new 数组类型[行数][列数] |
| 二维数组 | c++ | 数组类型 变量名[行数][列数] |
| 一维动态数组 | java | 数组类型 变量名[]=new 数组类型[n] |
| 一维动态数组 | c++ | 数组类型 *变量名[]=new 数组类型[n] |
| 二维动态数组 | java | 数组类型 变量名[][]=new 数组类型[n][m] |
| 二维动态数组 | c++ | 指针指向一维数组的指针 |