发布网友 发布时间:2022-05-02 19:40
共4个回答
热心网友 时间:2022-06-26 11:40
两个比较函数的名做指针分别做参数代入排序,追答你可能是不理解函数名做参数的合理性,
排序函数的参数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);热心网友 时间:2022-06-26 11:42
......