C語言二維陣列深度理解

2021-07-03 09:38:21 字數 517 閱讀 8469

二維陣列比較抽象,比較難理解,他的原理是則呢麼樣的呢與一維陣列之間有什麼聯絡呢?

定義乙個二維陣列

a[3][3]=,

, .

} 我對於二維陣列的理解就是

乙個一維陣列a[3]儲存了3個位址,這三個位址分別是這二維陣列的三行的首位址這樣*(*(p+1)+1)與p[1][1]相同也就說的通了(p指標指向陣列a)
最近幾天我有思考了一下,感覺上面說的有點不妥

int a[8][8];

把a[8]看成乙個一維指標陣列不合適

因為 &a[0]==&a[0][0]

如果a[0]具有單獨記憶體空間的話 &a[0]應該是!=&a[0][0]的

所以 應該說a[0]代表 a[0][0]的位址 而不是a[0]儲存了 a[0][0]的位址 也就是編譯器看到a[0]後將之替代為&a[0][0] 而不是將&a[0][0]存入某一塊記憶體中, 也也就是 a[8][8]在記憶體中 只佔了64*sizeof(int)個位元組 不再多占用其他記憶體

C語言 輕鬆理解二維陣列

若有二維陣列a char a 10 10 則a表示二維陣列本身,含有100個元素,也可認為含有10個一維陣列,每個一維陣列含有10個元素,其占有100位元組 a 0 表示二維陣列a的第乙個一維陣列,含有10個元素,其占有10位元組 a 1 表示二維陣列a的第二個一維陣列,含有10個元素,其占有10位...

C語言二維陣列專題 理解二維陣列名

int array 2 2 這個二維陣列裡包含了兩個一維陣列,分別是,這個好理解,但是對於array和array 1這兩種寫法,該怎麼理解呢?這篇文章我就說說我自己的心得吧。include 編譯器名 tdm gcc 4.9.2 32 bit release 執行平台 windows xp 32bit...

C語言二維陣列

int main int argc,const char argv int array 5 建立乙個二維陣列 型別修飾符陣列名 包含幾個小陣列 每個小陣列有多少個元素 初始值如何寫?int array 3 4 一維陣列可以省略元素個數,二維陣列只能省略第一位 第乙個 3 可以不寫 第二種初始值寫法 ...