1. 程式人生 > >一維陣列、二維陣列的理解

一維陣列、二維陣列的理解

陣列名字與指標關係的理解:

陣列名字實際上指向的是陣列中的“元素”的地址,而不是一個元素的地址。

例如:

一維陣列,二維陣列,甚至n維陣列在記憶體中的“元素”儲存都是連續的一個接著一個。

一維陣列:

int a[3]={1,2,3}  // a陣列中有三個元素,而各個元素都是int型別,所以a指向元素1的地址;a+1指向2的地址。

二維陣列:

int p[2][2]={{4,5},{6,7}}等價於{4,5,6,7}  //儲存模式都一樣都是連續儲存;   //由第一種賦值方式可知b陣列中有兩個元素,而各個元素都是陣列,{4,5},{6,7};那麼我們的b就應該是指向元素{4,5}“記憶體塊”的地址,而p+1則是指向元素{6,7}“記憶體塊”的地址。

所以*(p+1)指的是6的地址而**(p+1)就是數字6;*(p+1)+1指的是7的地址而*(*(p+1)+1)就是數字7;

而一維陣列中有a[1]=*(a+1)那麼在二維陣列中也有*(p+1)=p[1]而他是一個地址,原因是二維陣列中方的是陣列。

 

p是二維陣列的名字,其二維陣列的記憶體模型為:

 轉載請標明原貼出處:https://blog.csdn.net/zj490044512