2014-01-12 148 views
-1

我可以將二維數組看作指針的一維數組,它的第j個索引是指向矩陣的第j行數組的指針嗎? 例如,如果我有一個數組[4] [4]。是arr [2]指向第二行數組的指針?二維數組作爲指針的一維數組

+0

您是否將一維數組看作指針? – nhgrif

+0

閱讀[comp.lang.c常見問題](http://www.c-faq.com)的第6部分。 –

回答

0

不可以。數據在內存中是連續的。

arr [2]將知道單個數組的大小,並將其添加到數組指針的2倍以獲得適當的偏移量。

+0

取決於它是如何創建的。如果它是以固定維度靜態分配的,那麼你說的正確的是數據是連續的,但聲明' ** arr'並且稍後分配實際維度是完全有效的。例如,我這樣做得到三角形矩陣。 – pjs

0

我可以將二維數組看作指針的一維數組,它的第j個索引是指向矩陣的第j行數組的指針嗎?

是。但請記住,數組不是指針。在2D陣列array[M][N]的情況下,爲陣列元素array[i](這裏的iint)中的每一個分配空格。但是在指針數組*array[M]的情況下,您需要爲每個元素array分配空間。

例如,如果我有一個數組[4] [4]。是arr [2]指向第二行數組的指針?

是。 arr2衰退到指向行2的指針