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比较大小的规则,它就可以帮我们对任意数据类型的数组进行排序。

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

  • 相关阅读:
    # 牛客挑战赛46_C题排列(前缀优化DP)
    # 牛客挑战赛46 B最小的指数
    Educational Codeforces Round 99 (Rated for Div. 2)
    Wireless Password HDU
    Codeforces Round #686 (Div. 3)
    网络流之最小费最大流
    网络流之最大流
    next()和nextLine()的区别
    初识HTML
    jQuery笔记
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007360.html
Copyright © 2011-2022 走看看