1. 程式人生 > >指針數組和數組指針的區別

指針數組和數組指針的區別

都是 參數類型 數組指針 post RR ray 函數 數組的指針 ron

1:指針數組:就是這個數組裏面的元素全部是指針;即地址

如:

int a[] = {1,2,3,4,5};

int *p[] = {&a[0],&a[1],&a[2],&a[3],&a[4]};//全部元素都是地址

2:數組指針:

指向數組的指針叫數組指針

int (*p)[4]; //數組指針也就是行指針;該p指針指向4個int類型值的數組

3:函數指針:

指向函數的一個指針

返回類型是int函數的返回類型;參數是函數fun的參數類型

int (*fun)(int x, int y);

如:

/* p 是函數指針 */
賦值:

int (* p)(int, int) = & max; // &可以省略 max 是一個函數

使用:

p(a, b);//等同於 max(a,b)

4:指針函數:

指針函數返回的是一個地址;就是指針

int * fun (int x)

{

int *p = &x;

return p;

}

5:函數指針數組的使用

/*定義函數指針數組變量fun_array
(int,int) 對應於函數指針數組 指向4個函數名的函數列表
*/
int (*fun_array[4]) (int,int) = {add, sub, mul, div};

int result = fun_array[0](i,j); //表示調用第0個數組元素的函數即 add函數

指針數組和數組指針的區別