目录
1.qsort的介绍与使用方法
2.介绍void*
3.举例使用qsort
4. qsort的模拟实现,了解其运作原理
1.qsort的介绍与使用方法
2.介绍void*
3.举例使用qsort
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>struct stu
{char name[20];int age;float score;
};int cmp_int(void* e1, void* e2)
{return (*(int*)e1 - *(int*)e2);
}
int cmp_by_name(void* e1, void* e2)
{return strcmp((((struct stu*)e1)->name), (((struct stu*)e2)->name));
}void test2()
{struct stu arr[] = {{"zhangsan",20,99.9},{"lisi",10,66.6},{"wangwu",30,33.3}};int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), cmp_by_name);int i = 0;for (i = 0; i < sz; i++){printf("%s ", arr[i].name);}
}
int main()
{test2();return 0;
}
注意:输入首元素地址(qsort第一个参数)为结构体时,不用具体到结构体里面的元素,只要是结构体名(例子中的arr)就行。
4. qsort的模拟实现,了解其运作原理