qsort中的函数指针,及函数解释
2024-08-27 02:26:24
函数指针有何用
函数指针的应用场景比较多,以库函数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比较大小的规则,它就可以帮我们对任意数据类型的数组进行排序。
在这里函数指针作为了参数,而他同样可以作为返回值,创建数组,作为结构体成员变量等等,它们的具体应用我们在后面的文章中会介绍,本文不作展开。本文只介绍一个简单实例。
最新文章
- Android之TabActivity的使用
- js的继承
- windows平台解决quick3.5final + sublimeText3 模拟器找不到的问题
- [Js]碰撞运动
- ios 把毫秒值转换成日期 NSDate
- HDU1569+最大点权集
- 初始seajs
- 在家用机上搭建 Git https 服务器
- 黑马程序员:3分钟带你读懂C/C++学习路线
- C++对象模型的那些事儿之三:默认构造函数
- [Linux]fcntl函数文件锁概述
- swift 有道 翻译文档(2 条件语句 循环语句)
- CAS 单点登录【1】入门
- 生成器的使用demo
- java多线程中的死锁情况读书笔记
- Struts2学习笔记二:开发流程
- 破解Excel密码
- How to convert a QString to unicode object in python 2?
- phpstorm破解 IntelliJ IDEA License Server本地搭建教程 http://blog.lanyus.com/archives/174.html/comment-page-6#comments 附件:mac环境
- iOS设备是否越狱的判断代码
热门文章
- Deepin升级Linux5.0内核(目前最新5.3-rc7)
- [C++] 习题 2.15 实现简单环形队列
- STM32之串口编程步骤
- 长乐培训Day2
- adb连接安卓设备的2种方式
- 浅谈(IOC)依赖注入与控制反转(DI)
- C/C++读写文件的几种方法fstream fopen、fwrite()、fread()操作
- PyCharm 占用过大 C 盘空间,system 配置文件迁移
- VBA Exit Do语句
- [技术翻译]您应该知道的13个有用的JavaScript数组技巧