一. 函数介绍
首先,我们先对qsort函数进行一个简单的介绍:
qsort函数,头文件**<stdlib.h>**,包括四个参数。
四个参数具体介绍如下:
void qsort(void* base, //base是待排序数据中第一个字符的地址(若为数组则为数组名)。因数据类型未知,故定义为 void*
size_t num, //num是待排序数据的数据总个数,类型为size_t,即unsigned int。
size_t size, //size是待排序数据中数据的字节数大小,类型为size_t,即unsigned int。
int (*compar)(const void*, const void*)
//一个函数指针,指向的函数用于比较两数据的大小。
其中的compar函数介绍如下:
int compar(const void*n1, const void*n2)//const保证数据传输安全 该函数返回值类型为int
{
return *(int*)n1 - *(int*)n2;
}
//compar函数中,若n1的值大于n2,则返回一个大于0的数;若n1=n2,则返回0;若n1小于n2,则返回一个小于0的数。
//故可以直接用n1减去n2。 需要先对数据进行类型强转,从void*转至int*再解引用进行计算。
二.函数演示
#include<stdio.h>
#include<stdlib.h>
int cmp(const void*n1,const void*n2)
{
return *(int*)n1 - *(int*)n2;
}
int main()
{
int arr[] = {