您的位置:首页 > 编程语言 > C语言/C++

C++ 函数地址

2017-07-26 16:00 232 查看

一、定义函数指针

void (*funcPtr)();


定义了一个指针指向一个无参无返回值的函数。

如何理解复杂的定义

从中间开始向外扩展。中间即funcPtr。向外扩展,先注意右边最近的项(这里没有,右括号结束了),再注意左边的项(星号指针),右边的空参数表表示这个函数没有带任何参数,再注意左边(void表示函数没有返回值),大多数声明都是以右左右动作的方式工作的。

二、复杂声明和定义

void * (*(*fp1)(int))[10];
float (*(*fp2)(int,int,float))(int);
typedef double (*(*(*fp3)())[10])();
fp3 a;
int (*(*f4())[10])();
int main(){}


如何理解-右左右

fp1是一个指向函数的指针,该函数接受一个整型参数并返回一个指向含有10个void指针数组的指针。

fp2是一个指向函数的指针,该函数接受三个参数(int,int ,float),且返回一个指向函数的指针,该函数接受一个整型变量并返回float。

fp3是一个指向函数的指针,该函数无参数,且返回一个指向含有10个指向函数指针数组的指针,这些函数不接受参数且返回double。然后又说明,a是fp3类型中的一个。

f4是一个返回指针的函数,该指针指向含有10个函数指针的数组,这些函数返回整型值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 指针 c语言