zoukankan      html  css  js  c++  java
  • qsort中的函数指针,及函数解释

    函数指针有何用

    函数指针的应用场景比较多,以库函数qsort排序函数为例,它的原型如下:

    void qsort(void *base,size_t nmemb,size_t size , int(*compar)(const void *,const void *));
    

    看起来很复杂对不对?拆开来看如下:

    void qsort(void *base, size_t nmemb, size_t size, );
    

    拿掉第四个参数后,很容易理解,它是一个无返回值的函数,接受4个参数,第一个是void*类型,代表原始数组,第二个是size_t类型,代表数据数量,第三个是size_t类型,代表单个数据占用空间大小,而第四个参数是函数指针。这第四个参数,即函数指针指向的是什么类型呢?

    int(*compar)(const void *,const void *)
    

    很显然,这是一个接受两个const void*类型入参,返回值为int的函数指针。
    到这里也就很清楚了。这个参数告诉qsort,应该使用哪个函数来比较元素,即只要我们告诉qsort比较大小的规则,它就可以帮我们对任意数据类型的数组进行排序。

    在这里函数指针作为了参数,而他同样可以作为返回值,创建数组,作为结构体成员变量等等,它们的具体应用我们在后面的文章中会介绍,本文不作展开。本文只介绍一个简单实例。

  • 相关阅读:
    测试人员在软件开发过程中的任务是什么?
    python关于文件操作
    字符编码
    内置方法
    数据类型的基本使用
    Python的流程控制
    Python与用户相交互
    编程语言的发展史
    计算机的五大组成
    可迭代对象 迭代器对象 生成器对象
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007360.html
Copyright © 2011-2022 走看看