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

Posted 王默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针数组和数组指针的区别相关的知识,希望对你有一定的参考价值。

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

 

以上是关于指针数组和数组指针的区别的主要内容,如果未能解决你的问题,请参考以下文章

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

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

指向指针数组和指针数组的指针之间的区别[重复]

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

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

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