函数指针

来源:互联网 发布:web后端性能优化 编辑:程序博客网 时间:2024/06/06 20:52

void(*p)(int)  :

声明了函数指针类型:void (*)(int) 的函数指针变量:p。 因此,void (*)(int)为一个类型,而p是一个该类型的变量。

一般,左边部分为返回值类型,中间括号(*p)表明为一个函数指针及变量名称,右边括号(int)为参数列表部分。

特殊的,在返回值也是一个函数指针时,原来左边的返回值部分将会分开嵌套在式子的两端。


如:

void( *func(int,void(*)(int)) )(int):

*func:                  该部分即表明声明的是一个类型为函数指针的变量,变量名为func。

(int,void(*)(int)):  该部分即参数列表。其中包含两个参数:一个int类型,和一个 以int为参数,返回void的函数指针类型。

重点难点在于返回值类型: 经过前面的分析,忽略参列表,( *func(int,void(*)(int)) )整体就是一个函数指针的变量p。因此void( *func(int,void(*)(int)) )(int)即等价于void(*p)(int),这也是一个函数指针,即得到整个表达式最终的类型:一个类型为void(*)(int)的函数指针,这也就是函数指针func的返回值类型。

0 0
原创粉丝点击