一.qsort函数是什么
qsort()函数:快速排序的函数 -引用stdlib.h头文件
参数说明:
void qsort (
void* base, //要排序的目标数组
size_t num, //待排序的元素个数
size_t width, //一个元素的大小,单位是字节
int(*cmp)(const void* e1, const void* e2)
);
其中cmp是函数指针,cmp指向的是:排序时,用来比较两个元素的函数。需要自己编写。
返回值:
二.使用qsort排序-以升序为例
关于void*型指针:
void*:无具体类型的指针 能够接收任意类型的地址
缺点:不能进行运算。不能+-整数,不能解引用
1.整形数组排序
注意:
1.比较函数的参数类型为void* ,我们要进行强制类型转换!且要解引用才能得到对应的值!
2.若我们想排成降序,只需要写成e2-e1即可
2.字符数组排序
注意使用sizeof()操作符和strlen()函数的区别
3.字符指针数组排序
4.结构体数组排序
比较年龄->实际比较的是整形
比较名字->实际比较的是字符串->使用strcmp函数,不能使用 == 判断
5.浮点型数组排序
注意:比较函数中,返回类型是int,最后相减的值要强制类型转化为int ,但这也会造成错误,建议使用方法2.