指针?干他!(4)

        现在开始这次的学习。

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函数原理,我们可不可以模拟一下呢?

具体情况呢就是这样的。

        欢迎大家在评论区留言,讨论,指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值