1、数组名字与指针
静态数组是一列连续存储的对象,数组名字是指向数组第一个元素的指针常量,因而具有内部元素指针类型。比如int p[4], p可以作为int* 类型看。要特别注意的是,多维数组在内存中仍是线性存储,本质上与一维数组无异,例如int p[4][5]就可以理解为int p[20],多维数组名字p指向的仍只是int,而不是指向int[5],p仍然只能被看作int* 类型,而不是int**类型。
2、多维数组做函数参数
譬如要将int p[4][5][6]传入一个函数,那么这个函数的形参可以为int* q或int s[][5][6],函数内数组元素的访问方式为:
p[i][j][k]=*(q+i*5*6+j*6+k)=s[i][j][k]
3、多维数组的动态分配
必须一个维度一个维度地分配,高维数组的元素为指向低维数组元素的指针(与静态多维数组的存储结构是不同的)。如
int** double=new int* [4];
for(int i=0;i<4;++i) {
double[i]=new int[5];
}
double是个二维数组