1、一維數(shù)組
定義一個(gè)指針P
賦值p=&a[0]
a+i=&a[i]=p+i
*(a+i)=a[i]? ? ? 僅當(dāng)p指向數(shù)組的首地址時(shí),指針下標(biāo)表示法引用數(shù)組元素。p[i]=*(p+i)=a[i]
2、二維數(shù)組
(1)行指針。
定義格式:類型關(guān)鍵字 (*p)[常量N]
例如:int (*p)[4]表示定義了一個(gè)可指向4個(gè)整型數(shù)的一維數(shù)組的指針p(常量N規(guī)定了行指針?biāo)赶虻囊痪S數(shù)組的長度,不可省略)
初始化方法:p=a或p=a[0]。其中a表示二維數(shù)組的首地址相當(dāng)于&a[0][0]。而a[0]表示二維數(shù)組時(shí)為a[0]+0,即&a[0][0]
用行指針表示二維數(shù)組a[i][j]各等價(jià)形式:
p[i][j]
*(p[i]+j)
*(*(p+i)+j)
(*(p+i)[j])
(2)列指針
定義格式:和普通變量指針定義格式相同。
例如;int *p表示定義了一個(gè)列指針p
初始化方法:p=a[0]或p=*a參照行指針初始化時(shí)的解釋。
用列指針表示二維數(shù)組a[i][j]的各等價(jià)形式:
*(p+i*n+j)
p[i*n+j]
注意:不能用p[i][j]表示a[i][j].實(shí)際上通過列指針引用二維數(shù)組a[i][j],后可將二維數(shù)組看成一個(gè)有m行*n列個(gè)元素組成的一維數(shù)組。而p[i][j]表示的是一個(gè)二維數(shù)組。