一維陣列 int a[3]=
賦值:int *p=a
我們有 a[0]==*(a+0)==*a
同樣的 a[i]==*(a+i)
對於一維陣列可以理解為
列指標,因為它的移動是發生在列上的
二維陣列:int a[2][3]=,}
賦值:int (*p)[3]=a
而對於二維陣列可以把它理解為
行指標a 表示的是該二維陣列的首位址,也就是第一行的首位址 同樣可以表示為a[0]
a+1 表示的是該二維陣列第二行的首位址 同樣可以表示為a[1]
那麼如何來理解這個a[0],把a[0]在二維陣列中它其實表示的是第一行這個陣列的陣列名
就相當於假設 k=a[0], 第一行有元素,那麼有 int k[3]=
也就是說a[0]在二維陣列中它就是代表乙個一維陣列的
陣列名
好了,自己動手做下面的實驗,你會更好的理解!
#include
using namespace std;
int main()
,};//*a==*(a+0)==a[0]
//二維陣列中a[0]就是代表乙個一維陣列的名字
//a[0]與&a[0]在二維陣列中是等價的,因為不存在a[0]這個元素
cout<
cout<
//(a[1]+1)表示的第二行第二列的位址就相當於&a[1][1]
//在位址前取*號當然是表示它的值了
//還可以這樣來理解:根據 *(a+i)==a[i] 當然就有*(a[1]+1)=a[1][1] 了,把a[1]看作乙個整體
cout<<"a[1][1]="<<*(a[1]+1)<}
陣列指標 指標陣列 二維陣列如何理解與使用
首先它是乙個指標,它指向乙個陣列,在32位系統下任何型別的指標所佔記憶體大小都為4個位元組,至於它指向的陣列佔多少位元組,具體要看陣列的大小。總之,陣列指標即為 指向陣列的大小 例如 int p 4 定義了乙個陣列指標,該指標變數儲存的是乙個陣列的首位址,它可以指向乙個含有4個整型元素的陣列。1 對...
二維陣列與二維指標
1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...
二維陣列與二維指標
一.指標與二維陣列 以martix 3 4 為例 1.二維陣列的本質 int martix 3 4 int martix 3 4 int 4 martix 3 令int 4 為type,type martix 3 為含有三個元素的陣列,每乙個元素型別為int 4 int 4 是乙個擁有4個int型別...