99网
您的当前位置:首页[C++]指针数组、数组指针,指针函数和函数指针两组对应的区别

[C++]指针数组、数组指针,指针函数和函数指针两组对应的区别

来源:99网

2、函数定义:返回值类型 + 函数名 + (形参表说明)

函数指针:指向函数的指针。

函数指针数组:存放多个函数指针的数组。

判断下列定义的含义:

1)int p[3]: 整型指针数组(因为[] > * , 所以是一个数组)

2)int (*p)[3]:指向数组的指针(因为() > [] , 所以是一个指针)

3)int * p (int):一个函数,返回值为int *类型,参数为int类型。

4)int (*p)(int):函数指针,指向的函数返回值为int类型,参数为int类型。

5)int *(*p)(int):函数指针,指向的函数返回值为int *类型,参数为int类型。

6)int (*p[3])(int):函数指针数组,指向的函数返回值为int 类型,参数为int类型。

7)int *(*p[3])(int):函数指针数组,指向的函数返回值为int *类型,参数为int类型。

指针数组:一个普通数组,但其类型由元素类型决定,每一个元素是一个指针。

数组指针:指向一个数组的第一个元素的指针,通过偏移量可得到该数组指定下目标的元素。

指针函数:是一个普通函数,但它的返回值是一个指针。

函数指针:是一个指向一个函数的指针,可以把这个指针作为参数传进去,调用者用这个指针可以调用对应的函数,.NET里的delegate应该是使用这种机制实现的。

其实指针可以实现一些非常好的功能,当年我就用一个指针数组,保存一些函数的指针,然后把这个数组的指针作为参数传到调用方,调用方可以方便地根据需要,选择数组中不同的指针对应的函数来进行调用,实现了灵活的函数数组,例如这实现一个遥控器功能的程序,把每个按钮的功能写成一个函数,然后的把这些函数的指针装入一个数组,根据数组的下标来调用不同的函实,实现不同的功能。这种做法也是挺好的。

因篇幅问题不能全部显示,请点此查看更多更全内容