复杂的函数指针例子分析

复杂的函数指针例子分析

ID:41644620

大小:57.64 KB

页数:3页

时间:2019-08-29

复杂的函数指针例子分析_第1页
复杂的函数指针例子分析_第2页
复杂的函数指针例子分析_第3页
资源描述:

《复杂的函数指针例子分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、复杂的函数指针例子分析2008-01-2611:38:22分类:一个最简单的函数指针定义如卜1Void(*funcPtr)();//funcptr是一个函数指针,它指向的函数没有参数,返回值为void非常复杂的函数指针定义:1・Void*(*(*fpl)(int))[10];解析:Void*X[10];9这是一个有10个void*类型的元索的数组。X=*(*fpi)(int),从而可以看出(*fpl)(int)它是一个指针,指向一个数组。这个数组有10个void指针类型的元素。Fpl是一个函数指针,它的参数是一个int型的参数。返回值为一个指向含有10个void*元索的数组的

2、指针。2.Void*(*fpl)(int)[10];解析:void*X[10J;9X是一个有着10个void*类型的数组x=(*fpl)(int);Fpl是一个函数指针,它有一个整型参数,具返回值是一个有着10个void*类型的元素的数组。若是这个形式㈠Mp片祁兮则其返冋值为一个指向含右70■个怕池类型的数组的指针°3.Void(*fpl)(int)[10];解析:voidX[10]-»X是一个有着10个void类型的数组x=(*fpl)(int);Fpl是一个函数指针,它有一个整型参数,其返回值是一个有着10个void类型的元索的数组若是这个形式,Void(*fpl)(in

3、t)[10],则其返回值为一个有10个void类型的数组。4.Float(*(*fp2)(int,int,float))(int);解析:FloatX(int)->X是一个函数,有一个整型参数,返冋值是一个浮点数。x=*(*fp2)(int,int,float);Fp2是一个函数指针,它有三个参数,前两个是整型,最后一个是浮点型。其返回值是一个指针,是一个指向函数的指针(函数指针)。这个函数指针所指向的函数的原型是只有一个整型参数,返回值是一个浮点数。2.Typedefdouble(*(*(*fp3)())[10])();解析:fp3是一个函数指针;它不带参数;返回值是一个指

4、针。x=(*(*fp3)())Typedefdouble(*X[10J)()X是一个数组,他有10个元素,它的元素都是函数指针,这个函数指针所指向的函数原型是一个没有参数,返回值为double类型的函数。综合起來就是:fp3是一个新定义的数据类型,它是一个函数指针,这个函数指针所指向的函数原型是不带参数,返回值是一个指向数组的指针。这个数组有10个元素,其元素类型是一个函数指针,这个函数指针所指向的函数原型是一个没有参数,返凹值为double类型的函数。3.Int(*(*fp4())[10])();解析:fp4是一个函数,他没有参数,返回值是一个指针;x=(*fp4());I

5、nt(*X[10])();X是一个数组,其有10个元素,每个元素都是一个函数指针,这个函数指针所代表的函数原型是一个没有参数,返回值是整型的函数。综合起来就是:fp4是一个函数,他没有参数,返冋值时一个指向数据的指针,这个数组有10个元素,每个元索都是一个函数指针,这个函数指针所代表的函数圆型是一个没有参数,返冋值是整型的函数。char*const*(*ss[23][200])(void(*)(inth,void(*)(void)))void*(*(*fp1)(int))[10];看了以后,我怀着“明知山有虎,偏向虎山行”的心理,决定写一下我自己关于复杂指针的理解方法。我的这

6、个方法是按照语法,一层一层进行分析來理解复杂指针的,完全是自己的方法,不一定适合其他人,不过写出来也给大家一个参考。首先拿简单的那个例/来介绍-下我的“层次理解法”:(thisnameismadeupbymyself:P)void*(*(*fp1)(int))[1O];(1)从外层看:void*(*(*fp1)(int))[10];这个等价于:void*A[10];所以整个声明就是一个10个元素的数组,这个数组的每个元索是一个指向void的指针(或者说成:每个元素是一个void*);⑵再往里看:(*(*fp1)(int))==>*(*fp1)(int)这就是一个函数指针,所指

7、向函数需要一•个int型的参数,并且返冋值是-•个指针;下一•步就是确定返冋值指针的类型了;⑶结合(1),就知道,fp1返冋值指针指向的就是(1)里所声明的那个类型。所以,整理一下语言,就是:fp1是一个函数指针,指向的函数有一个int型参数,并返回一个指针;返回的这个指针指向的是一个含有10个元素的数组,这个数组的每个元素是一个void*・现在看一下那个比较BT的例子:char*const*(*ss[23][200])(void(*)(inth,void(*)(void)));(1)最外层:char*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。