指针数组是2维数组吗

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:21:04
指针数组是2维数组吗

指针数组的是几维的,要看怎么声明了,跟普通的数组一样,只是他们的元素是指针,声明的时候,前面多了个*号。

比如:
int *p[3],a[2];//p是一维的指针数组,a是一维的数组
int *p[3][2],a[2][3];//p是二维的指针数组,a是二维的数组

有二维有一维,多维也可以,只是每个单元格里面存的是指针罢了

2维和指针数组是两回事
指针数组可以看成指针的一维数组
数组的维数要看[]的个数
a[i] 一维

a[i][j] 二维

不是

*p[n]是一维数组,*p[][n]是二维数组(其中[]中的数可写可不写,因为[]代表行指针,[n]一定要写,因为[n]代表列指针)。
OK?

不是。

指针是指针,数组是数组。它们用法很相似,但逻辑上并不是一体,从面象对象角度看,两者区别极大。

只从使用上说,指针很容易发生内存违规,而数组有限。
指针是栈操作,而数组是堆操作。

所以指针数组也不是2维数组。