C++数组与指针

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是个二维数组

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章