如何理解二維陣列與指標

2021-09-06 08:52:14 字數 858 閱讀 8454

一維陣列 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型別...