目录
1.题目
编写一个排序函数,实现对任意类型的数据进行排序
2.思想
通过通用排序函数,我们来更加详细理解回调函数
回调函数:定义的函数,并不会直接调用,而是在某种条件下调用
比如本文,我们要编写一个排序函数,但是具体函数要对什么样的数据来进行排序是不一定的,但我们要对一个浮点型数据排序时,我们就要调用与之相对应的比较函数。
3.代码逐步详解
我们对代码实现依次分为三个板块,一个为主函数,一个为比较板块,一个为排序板块
其中,我们的思想是排序板块是永远不变的,无论排序的数据类型是什么,在通过比较板块后你输入排序板块方式都是相同的。
主函数
如下:
int main()
{
//float arr[10] = { 1,9,2,8,3,7,4,6,5,1 };
char *arr[] = { "nihao", "leihou", "hi", "hello" ,"adw"}; //字符指针数组,保存的不是字符串,而是指向字符串的空间地址
func(arr, sizeof(char*),sizeof(arr)/sizeof(arr[0]), char_compare); //定义函数,输入数组,单个字节大小,个数,和比较的函数
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) //逐个打印
{
printf("%s ", arr[i]); //注意打印格式
}
system("pause");
return 0;
}
在一开始定义需要排序的数据,可以是任意类型的数组,比如我们本次举例就用char*类型的数据
char*是字符指针数组,保存的不是字符串,而是指向字符串的空间地址。
由此