找回密码
 立即注册
查看: 159|回复: 2

哪位大佬能帮忙解析一下这个

[复制链接]

1

主题

0

回帖

23

积分

新手上路

积分
23
发表于 2022-10-9 17:01:03 | 显示全部楼层 |阅读模式
回复

使用道具 举报

1

主题

4

回帖

64

积分

注册会员

积分
64
发表于 2022-10-18 19:09:37 | 显示全部楼层
float (*(*p2)(int,int,float))(int);
declare p2 as pointer to function (int, int, float) returning pointer to function (int) returning float
C语言的声明复杂到需要有专门的工具来解析……以上就是解析结果
即将 p2 声明为指向函数(整型、整型、浮点型)的指针返回指向函数的指针(整型) 返回浮点数
回复

使用道具 举报

1

主题

1

回帖

15

积分

新手上路

积分
15
发表于 2022-10-28 16:26:11 | 显示全部楼层
float (*(*p2)(int,int,float))(int);
从内到外分析
首先目标是p2,那我们就看p2是一个什么类型的东西
很明显在此题p2是一个指针(*p2)
然后我们把(*p2)看成一个整体,下一个括号中就是(* X (int,int,float)),把括号去掉
得到:* X (int,int,float),我们平时什么东西是长这样子的
就是函数,类比int * p (int)
所以这一串东西是一个函数,函数名为X,参数为int,int,float,返回值是一个指针,类型不明
随后我们再将这串东西看成一个整体,得:
float (Y)(int);
也是函数的格式,所以它是一个参数为int,返回值是float的函数
所以综上
p2是一个指针,它指向一个函数,这个函数的参数是int,int,float,返回值是一个指针,这个指针又指向一个函数,参数是int,返回值是float
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|粤嵌技术交流空间

GMT+8, 2025-7-8 01:48 , Processed in 0.699546 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表