這兩個其實是數字指針和指針數組的區別。我們一個一個來說明:
int *p[3];//定義了一個三維數組,其中的每個元素p[0]、p[1]、p[2]都是指向int變量的指針。
int (*p)[3];//定義了一個指針,這個指針是指向一個三維數組的。
兩者之間的區別和聯系可以用一個二維數組來闡述:
int *p[3];//定義p[3]為指針數組
int (*q)[3];//定義q為數組指針
int a[4][3];//定義一個二維數組
p[0]=&a[0][0];//可以取a[4][3]中任意元素的地址給p[3]中的元素賦值
q=a[1];//a[1]其實是一個三維數組,其元素包括a[1][0],a[1][1],a[1][2],所以
//a[1]就表示這個數組的首地址,這個地址可以用來給q賦值
