作者:LAMP小白 点击:1725 发布日期:2012-09-30 12:45:00 返回列表
qsort是ANSI C标准提供的 存放于stdlib.h(standard library)中的函数
结构为:void qsort(void *base,size_t nelem,size_t width,int (*Comp)(const void *,const void *));
前3个都很好理解,但是就是第4个参数有些囧
首先他会给你参数名称的函数传2个值,都是const void 的指针,然后接收你返回给他的一个整型
写成
int intcomp(int *x, int *y) { return *x - *y; }
但在intcomp这遇上了问题,因为他的传递过来的参数是const void *a,我帮他专成了整型指针然后就可以直接返回值了
但编译的时候会报warning,说我返回给他的类型不符合标准
于是老老实实的写const void * 然后在返回的时候再转换就什么都不说了,奇怪...
#include#include int intcomp( const void *x, const void *y) { return *(int *)x - *(int *)y; } int a[100]; int main(void) { int i, n = 0; while(scanf("%d", mio_a[n]) != 0) ++n; qsort(a, n, sizeof(int), intcomp); for(i = 0; i < n; i++) printf("%dn", a[i]); return 0; }
上一篇:尽量别用include或require once 下一篇:快递查询API