今天刷leetcode的时候发现有个题解中写了这个函数,然后我看他没定义这个函数就直接用了,然后就搜了一下,后来发现这个函数就是c的库函数,他在stdlib.h中,共有四个参数,没有返回值。
函数原型:
int (*cmp)(const void *,const void *);
qsort(*s,n,sizeof(s[0],cmp));
这里s是需要排序的数组的首地址,n是需要排序的元素个数,sizeof就是每一个元素占的空间的大小,只想函数的指针,用来确定排序的顺序。
然后cmp函数写法为:
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;//从小到大排序
//return *(int *b)-*(int *)a;由大到小排序
}
此处cmp函数的返回值,<0(不进行置换),>0(进行置换),0(不进行置换)。