哥们,char(*(*f)(int))(int,float)你是如何分析出关系的?能详细说说分析过程么?

[复制链接]
查看11 | 回复1 | 2009-12-18 22:18:01 | 显示全部楼层 |阅读模式
1. char 2. (*x)(int,float) 3. x: (*f)(int) 然后从内往外看,这个定义了一个ff接受 int,返回函数指针1函数指针1 接受 int,float 返回 char 使用的时候:p=f(10);c=p(20,1.5);c 是 char
回复

使用道具 举报

千问 | 2009-12-18 22:18:01 | 显示全部楼层
1.定义函数指针的格式是这样的:int (*(func))(void);//注意这里(func)可以不用括号,只是为了下一步说明注意它和int func(void);的区别2.上面的func是变量,就像int n;一样,把n替换成函数即是返回int型的函数了,那把func替换成函数的定义格式int (*(func(int)))(void);注意这里是声明了一个函数,再次类推,把func单独用函数指针格式写出来就变成了int (*((*func)(int)))(void); 这是反过来看的过程,若事先不知道,则从里往外推,和func在同一层次(可按括号来划分)的(*func)(int)可以看出func是个函数指针它的参数是int型,返回类型继续看,先把(*func)(int)替换成Q,则变成int (*(Q))(void); 看出Q是个函数指针,它返回int,参数为void,这个Q即是func的返回类型了你用普通的类型如float来类比一下就大致可以明白了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行