指針數組和數組指針——兄弟你的括號呢?

參考: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

相關文章
相關標籤/搜索