qsort函数
函数的原型:
void qsort(void*base,size_t num,int(*comparator)(const void *,const void *));
参数解释:
很简单理解,第一个参数就是待排序的起始地址、元素个数和每个元素大小
最后那个参数比较特别,是一个指向函数的指针,该函数大概的形式为:
int cmp(const void *,const void *){…}
而const void *被称为指向常数的“万能”指针,它可以通过强制转换变成任意类型的指针
举个小栗子:
#include<stdio.h>
int cmp(const void*a,const void *b) {
return *(int*)a - *(int*)b;
}
int main() {
int a = 1, b = 10;
int c = 0;
c = cmp(&a,&b);
printf("%d",c);
return 0;
}
运行结果:
换成 char 类型:
#include<stdio.h>
int cmp(const void*a,const void *b) {
return *(int*)a - *(int*)b;
}
int main() {
char a = 'a';
char b = 'f';
int c = 0;
c = cmp(&a,&b);
printf("%d",c);
return 0;
}
运行结果:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)