关于qsort函数的理解以及利用qsort函数来比较整型

本文详细解读了C语言中的qsort函数,包括参数说明(指针、元素数量、元素大小和自定义比较函数),并通过cmp_int函数实例展示了如何实现数组元素的排序。
摘要由CSDN通过智能技术生成

在学习qsort函数中,我本人对其函数的理解,首先,对于该函数

void qsort(void* base, 
           size_t num,
           size_t size, 
           int (*cmp)(const void*, const void*)
           );

这是该函数的主体,下面是我本人对该函数的理解

void qsort(void* base, //这是一个指针,它指向的对象是你想要排序的数组的第一个元素。


           size_t num, //这里指的是你排序的元素的个数。


           size_t size, //这里指向排序的其中一个元素的大小。


           int (*cmp)(const void*, const void*)//这是一个函数指针,指向一个函数,但是这个函数需要你自主进行创建,目的是能实现数组中俩个元素的比较。


           );

举一个例子

int cmp_int(const void* p1, const void* p2) 
{
    return (*(int*)p1 - *(int*)p2);
}

test1()
{
    int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    qsort(arr, sz, sizeof(arr[0]), *cmp_int);
}

我们要把这个arr数组的元素从小到大排序,

qsort(arr, //这里就是数组的首元素

         sz, //这里便是数组元素的个数

        sizeof(arr[0]), //这里便是其中一个元素的大小

        *cmp_int //这里指向前面的我们前面写的一个函数。

);

int cmp_int(const void* p1, const void* p2) 
{
    return (*(int*)p1 - *(int*)p2); //由于我们知道我们比较的数组元素是整形,使用我们需要先对这些数据进行数据的转化。
}

希望能有帮助。

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值