指针数组和数组指针 指针函数和函数指针 函数指针数组的区别

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函数

 

posted @ 2018-03-10 20:26  王默默  阅读(517)  评论(0编辑  收藏  举报