C语言 库函数:qsort 详解

目录

1.qsort的介绍与使用方法

2.介绍void*​

3.举例使用qsort​ 

4. qsort的模拟实现,了解其运作原理​


1.qsort的介绍与使用方法

 2.介绍void*

3.举例使用qsort

 

 

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include

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的模拟实现,了解其运作原理

 

C语言 库函数:qsort 详解_第1张图片

你可能感兴趣的:(函数介绍,笔记,c语言)