參考:http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.htmlhtml
指針數組:array of pointers,指有這麼一組數組,每一個元素都是指針。ios
int *a[4],本質是一個數組。數組
因爲[]的優先級高於*,因此當表示某個元素的時候,*a[i]和*(a[i])有相同的效果。spa
數組指針:a pointer to an array,表示有一個指針,它指向一個數組,即第一個元素的地址。指針
int (*a)[4],本質是一個指針。code
數組指針也叫行指針,能夠指向二維數組:htm
int a[3][4];blog
int (*p)[4];io
p=a;class
舉個列子:
1 #include <iostream> 2 using namespace std; 3 int main(){ 4 int arr[4]={0,1,2,3};//一個普通數組 5 int *p_arr[4]; //定義一個 指針數組 6 int (*arr_p)[4];//定義一個 數組指針 7 8 arr_p=&arr;//讓數組指針指向數組(首元素地址) 9 10 for(int i=0;i<4;i++){ //將指針數組中的指針逐一指向普通數組的元素 11 p_arr[i]=&arr[i]; 12 } 13 14 cout<<*p_arr[1]<<endl; 15 cout<<(*arr_p)[2]<<endl; 16 return 0; 17 }
輸出結果爲:
1
2