一、函数指针和指针函数
先说定义:
函数指针:首先是一个指针,这个指针指向一个函数
指针函数:首先是一个函数,这个函数的返回值一个指针
看如下代码:
int *test(int a,int b)
由于* 的优先级低于() 的优先级,因而test首先和后面的() 结合,也就意味着,test是一个函数。即:
int *(test)(int a,int b)
然后这个函数的返回值的类型是 int * 即:指向int类型的指针。
再看如下代码:
int (*test)(int a,int b)
(*test) 说明test是一个指针,然后后面跟着()说明这个指针指向一个函数,即指向函数的指针。
二、用typedef声明函数指针
声明函数指针,正常方法是
int (*test)(int a,int b)
但当命名很多个函数指针的时候,用上面的方法显得非常不方便,所以可以这样做:
typedef int (*test) (int a,intb)
test func;