二維陣列中陣列名與其指標的關係

2022-03-21 20:17:31 字數 1299 閱讀 7241

大多數初學者不是很清楚二維陣列是個怎樣的存在,今天我就來說說這個二維陣列,計算機記憶體是一連串的儲存單元,我們可以把它理解成一條線,沒錯就是一條線,那麼問題來了,二維是個怎樣的存在呢???說白了,二維陣列並不真是二維,只是人們主觀的將它變成二維,舉個例子吧!比如樓梯,我們都知道樓梯說白了就是一條路,但是我們刻意將樓梯來回上公升的方式,這都是我們主觀的改變,實際上我們可以看成是乙個直路,只是被工人弄彎了。好了,不扯了,進入主題。。。。

二維陣列名a是陣列第一行的指標,它指向的是一整行,*a才是a[0][0]的位址,陣列名a是一整行位址,*a是乙個元素的位址,但此時p=a,這個p卻是a[0][0]的位址看下面的程式

1 #include2

3int

main()

4,*p;

67 p=a;

89 printf("

%d %d %d\n

",p,a,*a);

1011

return0;

12 }

結果顯示

第一行的位址和第乙個元素首位址肯定相同,我們繼續看

1 #include2

3int

main()

4,*p;

67 p=a;

89 printf("

%d %d\n

",(p+1),*(a+1

));10

11return0;

12 }

結果顯示,可以看出,位址差異出來了,第0行的位址為6487600,所以a[0][1]就是6487604,而第一行的位址為6487612,第0行和第1行是不是相差了3個int型位元組,所以這就證明了a是陣列第一行的指標,它指向的是一整行,p指向的是乙個元素

繼續證明

1 #include2

3int

main()

4,*p;

67 p=a;

89 printf("

%d %d\n

",*(p+1),**(a+1

));10

11return0;

12 }

結果

C 指標陣列,陣列指標,陣列名,二維陣列

本文較為詳細的分析了關於理解c 指標陣列,陣列指標,陣列名,二維陣列的一些技巧。是比較重要的概念,相信對於大家的c 程式設計有一定的幫助作用。一 關於陣列名 假設有陣列 1 inta 3 1.陣列名代表陣列第乙個元素的位址,注意,不是陣列位址 雖然值相等 是陣列第乙個元素位址,a 等同於 a 0 a...

二維陣列名 二維陣列名取位址 二級指標

先給出結論,便於以後查閱 首先給出幾個定義 typedef int p1x4 4 定義資料型別,p1x4這種型別為指向含4個int元素的1維陣列的指標 typedef int p3x4 3 4 定義資料型別,p3x4這種型別為指向含3x4個int元素的2維陣列的指標 下面從一維陣列說起 定義 int...

二維陣列和二維陣列名

對於一位陣列我們認識到其資料元素在記憶體中是按線性順序依次排列的,且一維陣列名的值是乙個指標常量。那麼二維陣列在記憶體中又是怎麼儲存的,其陣列名又有什麼含義呢?定義乙個二維陣列 int arr 3 4 我們可以將乙個二維陣列看做是乙個其中元素為陣列的乙個一位陣列,也就是說二維陣列第一維的元素實際上是...