指針數組和數組指針的區別
阿新 • • 發佈:2018-03-10
都是 參數類型 數組指針 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函數
指針數組和數組指針的區別