C語言 二維數(shù)組的指針
二維數(shù)組可以看作特殊的一維數(shù)組,即,可以理解成數(shù)組的數(shù)組。例如有如下數(shù)組定義語句:
int a[3][4]={{1,3,5,7},{9,11,13,15}, {17,19,21,23}};
可以把二維數(shù)組看成一個(gè)特殊的一維數(shù)組,數(shù)組名a代表數(shù)組的起始地址,而其第一個(gè)元素a[0]也是一個(gè)數(shù)組---包含4個(gè)int數(shù)據(jù)的一維數(shù)組,所以該二維數(shù)組a是由三個(gè)“特殊的”元素組成的一個(gè)“特殊的”一維數(shù)組。a[0]、a[1]、a[2]分別代表該數(shù)組中的三個(gè)元素(三行)。
數(shù)組名a是這個(gè)“特殊的” 一維數(shù)組的數(shù)組名,也是該數(shù)組的首地址,同樣也代表該數(shù)組的第一個(gè)元素的地址,即第一行的首地址。對于第一行的首地址來說,它代表著首行一整行(其中包含4個(gè)元素),而不是指某個(gè)具體元素。所以,可以將第一行的首地址(a)稱為“行指針”。同理,a+0, a+1, a+2都是行指針。如圖所示。
2000 | |
40] | |
? | |
2008 | a[1] |
a+2 ? 2016 | o[2] |
1 | 3 | 5 | 7 |
9 | 11 | 13 | 15 |
17 | 19 | 21 | 23 |
接下來,接著看二維數(shù)組中每一行的構(gòu)成,以首行為例,首行的元素分別是a[0][0], a[0][1], a[0][2], a[0][3]。因?yàn)榍懊嬉呀?jīng)說過,將第一行看成一個(gè)整體,a[0]就是這個(gè)數(shù)組的名稱,也是這個(gè)數(shù)組的首地址,也就是第一個(gè)元素a[0][0]的地址,所以可以寫成a[0]+0,它指向該行的第0列元素。這個(gè)指針每移動一次,從第0列移動到第1列。所以它是一個(gè)以數(shù)組元素為單位進(jìn)行控制的列指針。即a[0] 和a[0]+0都是指具體的元素,所以可將其稱之為“列指針”。
這里就提出了在二維數(shù)組中的兩個(gè)重要概念:行指針和列指針。
點(diǎn)擊加載更多評論>>