3235|5

211

帖子

13

TA的资源

一粒金砂(高级)

楼主
 

请问 void (*oper(ChainBinTree *p ))) 是什么意思呢? [复制链接]

最近在啃二叉树算法,涉及到遍历的实现,下面是书里的二叉树遍历函数定义:
void BinTree_LDR(ChainBinTree *bt,void (*oper(ChainBinTree *p )))        //中序遍历
{
}
ChainBinTree 是二叉树结构体,
oper(ChainBinTree *p)是一个操作节点的函数,
请教void (*oper(ChainBinTree *p )) 这个操作的含义
此帖出自编程基础论坛

最新回复

http://blog.csdn.net/thefutureisour/article/details/7939763 http://blog.sina.com.cn/s/blog_499bc61d01009ga5.html  详情 回复 发表于 2013-11-20 09:20
点赞 关注
 

回复
举报

132

帖子

122

TA的资源

一粒金砂(高级)

沙发
 
ChainBinTree 是二叉树结构体
ChainBinTree * 是二叉树结构体指针
oper(ChainBinTree *p)是一个操作节点的函数
void (*oper(ChainBinTree *p ))是一个指向操作节点的函数指针
此帖出自编程基础论坛
 
 
 

回复

1万

帖子

16

TA的资源

版主

板凳
 
是指向一个函数的函数指针
此帖出自编程基础论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

4
 
一层一层地往外拆

以三个括号为标志

首先是 void(X)
然后X里再拆解X = *oper(ChainBinTree *p ))
则 拆成 ×oper(Y)
最后 Y = ChainBinTree *p
显然,这是一个 你说的那 什么 树 的指针
所以 X的意思就是 对这个指针 施加 oper操作。这是什么?

是一个函数,操作数的函数,从外形看,它应该是返回某个指针,这个指针很可能也是这个树的指针或者某种相关指针

那么我的猜测是最外一层void是一个对这个返回指针的强制转换。

感觉上,是一个非常复杂,别扭,操蛋的实现方式。

当然,具体要看上下文
此帖出自编程基础论坛

点评

膜拜一下大湿,还有感谢所以帮忙解答的湿父~~:victory: 终于对它了解了个大概,我也觉得这样的写法····太不舒服了,嘿嘿  详情 回复 发表于 2013-11-21 18:37
 
 
 

回复

447

帖子

30

TA的资源

五彩晶圆(初级)

5
个人签名www.ctdisk.com/u/1283024
个人书库,持续更新中。
 
 

回复

211

帖子

13

TA的资源

一粒金砂(高级)

6
 

回复 4楼辛昕 的帖子

膜拜一下大湿,还有感谢所以帮忙解答的湿父~~   终于对它了解了个大概,我也觉得这样的写法····太不舒服了,嘿嘿
此帖出自编程基础论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表