函数指针定义解读

原则:从中间开始到两边结束
中间开始指的是从中间定义的变量开始,
到两边结束:指的是从中间变量开始先右后左的原则依次解读
sample: void (*pFuncPtr)()
中间开始:定义一个pFuncPtr,
先右后左,右边是个右括号,忽略之, 左边是个*说明pFuncPtr是个指针,然后右边是个(), 说明指针指向一个没有参数的函数,然后在左边是void说明指向
的函数的返回类型是void
“从中间开始” (pFuncPtr是一个…), 到右边(无意义的右括号), 左边“*”(指针,指向。。。), 右边-空的参数列表(“ 一个没有参数的函数),
左边void(pFuncPtr是一个指针, 指向带无参的返回类型为void函数)
void *pFuncPtr()
pFuncPtr是一个没有参数的函数,返回类型为void*
复杂的声明和定义
1。 void * (*(*fp1)(int))[10] fp1是一个函数指针, 指向点一个int参数的函数,该函数返回一个指针,该指针指向一个有10个void*指针元素的数组
2. float (*(*fp2)(int, int, float))(int);
fp2是一个函数指针,指向一个参数列表为(int, int, float)的函数,该函数返回一个函数指针,指向一个参数为(int)返回类型为float的指针
3. typedef double (*(*(*fp3)())[10])();
fp3 a;
fp3是一个函数指针指向一个无参的函数, 返回类型是一个指针,指向一个有十个数组的元素,其中每个元素是一个函数指针指向一个没有参数的返回类型
为double的函数
4 int (*(*f4())[10])();
f4是一个函数返回一个指针,指向一个有十个元素的数组,每个数组元素为一个函数指针,指向一个带无参返回类型为int的函数

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *