问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言函数指针做函数参数问题

发布网友 发布时间:2022-05-02 19:40

我来回答

4个回答

热心网友 时间:2022-06-26 11:40

两个比较函数的名做指针分别做参数代入排序,
这样,一个排序由小到大,后一个由大到小,如此而已。
很简单的。
是不是编译有问题?追问我知道原理,但是过程这里有问题:如果smaller=1的话,代入i n t (*cmp ) ( int , i n t ) ),什么意思?一个是int的数,另一个是指针,怎么能代?

追答你可能是不理解函数名做参数的合理性,
排序函数的参数cmp的类型是 int (*)(int,int )
i n t (*cmp ) ( int , i n t ) )
cmp就是函数指针,
而smaller,b i g g e r这两个函数也是
这个类型 int (*)(int,int),
就可以实参的形式代入,排 序函数中执行 (*cmp)(inta,intb)时,
实际就是执行了smaller或bigger,很简单,再仔想想就明白了。
排序函数中的 (*cmp)(inta,intb)还可以直接简写为
cmp(inta,intb),你改一下试试,保证还是正确的

热心网友 时间:2022-06-26 11:41

不懂你的补充,smaller是函数啊,它的名字(也就是smaller)就是指向函数smaller的指针,然后作为函数指针传入bubble_sort的参数不是挺对的吗?为什么问smaller=1?它又不是int的数?

热心网友 时间:2022-06-26 11:41

i f ( ( * cmp ) ( a [ i ] , a [ j ] ) ) swap ( a+i , a+i +1);
应该改为
if((*cmp)(a[i],a[i+1]))swap(a+i,a+i+1);
才对。
估记swap是交换两个地址的内容。
b u b b l e _ s o r t函数的最后一个参数是指向函数的指针,即是函数的入口地址。
如果smaller=1的话,代入i n t (*cmp ) ( int , i n t ) ),本身就不对。smaller是函数smaller(int a,int b)的入口地址,即汇编语言中CALL后后面的地址。是告诉排序函数用smaller函数来比较大小。
smaller带入b u b b l e _ s o r t,使if((*cmp)(a[i],a[i+1]))swap(a+i,a+i+1);相当于if(smaller(a[i],a[i+1]))swap(a+i,a+i+1);带入bigger就变为if(bigger(a[i],a[i+1]))swap(a+i,a+i+1);

热心网友 时间:2022-06-26 11:42

......
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男生一般在15岁青春期心情不好大多是什么造成的 我今年15岁男生为什么会经常做那些难以启齿的梦? 男生的青春期是几之几岁?我今天十四岁半,是青春期吗? 怎么看别人加密的qq空间相册内容单独删除相册里的人聊天记录方法 win11怎么退出微软账户-windows11微软账户退出教程 windows11微软账户怎么退出 windows11退出微软账户教程 windows11怎么退出账号登录 windows11退出账号登录教程 高尔夫雾灯怎么打开? 新车上牌照流程 新车自己怎么上牌照 新车上牌的流程有哪些 C语言,使用指针作为函数参数,写一求数组中最大值和最小指的函数 孩子只吃“草莓尖”,家长该如何正确教育? C语言编写GPS Receiver接收程序。 问个关于“北斗模块的命令输出”的问题,模块发送什么命令可以选择输出语句,比如只输出“RMC”语句。 GPS驱动程序有一些不明白的地方,哪位大侠帮忙解释下? C语言题看不懂,关于GPS数据处理 单片机驱动gps定位模块数据接收问题 我姓陈,想给女儿起个名字。要五行中带有木和火。 谁了解易流GPS GPS传送数据的格式是什么? 提取GPS测速信息的问题 gps数据提取 gps接收器是真北还是磁北 浅咖色裤子配什么颜色外套好看 咖啡色的裤子怎么搭配衣服啊? 自制酱香酒的做法 咖色裤子怎么搭 咖啡色裤子配什么颜色的上衣好看呢?? 什么是酱香酒的勾调? 男装浅咖色裤子怎么搭配上衣阳光图片 草莓尖尖像没熟 起名字甜语的含义是什么 草莓尖尖绿色身上红色是为啥 陆语甜这名字怎么样 c语言 编一程序 交换两个变量的值(用指针做函数参数) 本人姓鲍,女孩名字叫语甜怎么样 草莓形状尖头的是什么 什么聊天群好玩啊~推荐,推荐!有分有分! 大家觉的汪语甜好听吗,希望带个甜字 1岁半的宝宝只吃掉草莓尖便拿新的,面对这样的宝宝家长该如何管教? 杨语甜名字打分? [讨论]论坛有小U的聊天群吗?大家平时怎么交流的啊,我来建一个吧 高语晗 高语甜 高语茜 这几个名字哪个好听 草莓尖尖是什么意思? 取名取名取名取名取名取名取名 草莓尖的一头是头还是尾? 女孩子说她想要吃草莓是什么意思?女朋友说他想吃草莓尖尖,啥意思 草莓尖头果冻什么意思 取意思为甜的英文名 草莓尖不红是什么原因?多谢指导