我可以将二维数组看作一维指针数组,其中j索引是指向矩阵j行数组的指针吗? 例如,如果我有一个数组[4] [4]。 arr [2]是指向第二行数组的指针吗?
答案 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]
分配空格(此处i
为int
)。但是在指针数组*array[M]
的情况下,您需要为array
的每个元素分配空间。
例如,如果我有一个数组[4] [4]。 arr [2]是指向第二行数组的指针吗?
是。 arr2
衰减到指向第2行的指针