现在开始这次的学习。
1、回调函数
回调函数是一种特殊的函数,它作为参数传递给另一个函数,并在被调用函数执行完毕后被调用。
举个例子吧:
这是一个简单的计算器,但是你会发现框住的部分是完全一样的,比较冗余,那么怎么优化呢?欸,这就用到了回调函数。
我们可以写一个calc( )函数,将我们要选的计算方式传至进去,像是case 1 中的 calc(add),这样代码就简洁了许多。
2、qsort函数
它是一个十分强大的排序函数,是一个库函数,使用需包含头文件<stdlib.h>
qsort函数包含四个参数,分别是:
1.数组名
2.元素个数
3.数组元素所占大小
4.函数指针——指向元素的比较函数
我们通过定义一个函数cmp,通过cmp返回的参数来确定排序规则,需要注意的是:cmp函数的参数需要以const void *a, const void *b的形式来定义,表示a和b的类型是未确定的,在return中进行强制类型转换为int型。返回值大于零,则表示元素1大于元素2,是为升序。
如上,就是用qsort函数实现的整型排序,但是排序并不只有整型,像是结构体,应该如何运用呢。
要比较的是结构体,所以return返回的时候强制类型转换成(struct Stu*)类型。
3、模拟qsort函数
既然我们知道了qsort函数原理,我们可不可以模拟一下呢?
具体情况呢就是这样的。
欢迎大家在评论区留言,讨论,指正!