二维数组作为一维指针数组

时间:2014-01-12 17:57:24

标签: c

我可以将二维数组看作一维指针数组,其中j索引是指向矩阵j行数组的指针吗? 例如,如果我有一个数组[4] [4]。 arr [2]是指向第二行数组的指针吗?

3 个答案:

答案 0 :(得分:0)

没有。数据在内存中是连续的。

arr [2]会知道单个数组的大小,并将其加到数组指针的2倍以获得适当的偏移量。

答案 1 :(得分:0)

我可能是真的......如果你这样分配就是这种情况:How do I work with dynamic multi-dimensional arrays in C?。但是,最好的方法是使用&arr[2][0]之类的东西。再见,弗朗西斯

答案 2 :(得分:0)

  

我可以将二维数组看作一维指针数组,其中j索引是指向矩阵j行数组的指针吗?

是。但请记住,数组不是指针。在2D数组array[M][N]的情况下,为每个数组元素array[i]分配空格(此处iint)。但是在指针数组*array[M]的情况下,您需要为array的每个元素分配空间。

  

例如,如果我有一个数组[4] [4]。 arr [2]是指向第二行数组的指针吗?

是。 arr2衰减到指向第2行的指针