指標陣列和陣列指標——兄弟你的括號呢?
阿新 • • 發佈:2019-01-08
參考:http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html
指標陣列:array of pointers,指有這麼一組陣列,每個元素都是指標。
int *a[4],本質是一個數組。
由於[]的優先順序高於*,所以當表示某個元素的時候,*a[i]和*(a[i])有相同的效果。
陣列指標:a pointer to an array,表示有一個指標,它指向一個數組,即第一個元素的地址。
int (*a)[4],本質是一個指標。
陣列指標也叫行指標,可以指向二維陣列:
int a[3][4];
int (*p)[4];
p=a;
舉個列子:
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