《编译学习计划【第一季】》- C语言中的qsort函数
本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值。
分享给大家供大家参考。C语言中的qsort函数包含在<stdlib.h>的头文件里,本文中排序都是采用的从小到大排序。
函数声明
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
base-- 指向要排序的数组的第一个元素的指针。
nitems-- 由 base 指向的数组中元素的个数。
size-- 数组中每个元素的大小,以字节为单位。
compar-- 用来比较两个元素的函数,即函数指针(回调函数)
回调函数:
回调函数就是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就说这是回调函数。 [2]
compar参数
compar参数指向一个比较两个元素的函数。比较函数的原型应该像下面这样。注意两个形参必须是const void *型,同时在调用compar 函数(compar实质为函数指针,这里称它所指向的函数也为compar)时,传入的实参也必须转换成const void *型。在compar函数内部会将const void *型转换成实际类型。
int compar(const void *p1, const void *p2);
如果compar返回值小于0(< 0),那么p1所指向元素会被排在p2所指向元素的左面;
如果compar返回值等于0(= 0),那么p1所指向元素与p2所指向元素的顺序不确定;
如果compar返回值大于0(> 0),那么p1所指向元素会被排在p2所指向元素的右面
一、对int类型数组排序
1 2 3 4 5 6 7 |
|
二、对char类型数组排序(同int类型)
1 2 3 4 5 6 7 |
|
三、对double类型数组排序(特别要注意)
1 2 3 4 5 6 7 |
|
四、对结构体一级排序
1 2 3 4 5 6 7 8 9 10 11 |
|
五、对结构体二级排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
六、对字符串进行排序
1 2 3 4 5 6 7 8 9 10 11 12 |
|
相信本文所述实例对大家C程序设计的学习有一定的借鉴价值。
《编译学习计划【第一季】》- C语言中的qsort函数相关推荐
- 详解c语言中的qsort函数(有图)
目录 目录 一.qsort函数是什么 1.自定义冒泡函数时遇到的问题 2.qsort函数的作用 (1)int整形数组排序(2)浮点型数组排序(3)字符数组排序 (4)结构体排序 二.qsort函数的原 ...
- c语言fputc 函数头,简单对比C语言中的fputs()函数和fputc()函数
简单对比C语言中的fputs()函数和fputc()函数 C语言fputc()函数:写文件函数(将一指定字符写入文件流中) 头文件: #include 定义函数: int fputc(int c, F ...
- C语言 SLEEP函数不起作用,C语言中的sleep() 函数 sleep函数的具体用法
导航:网站首页 > C语言中的sleep() 函数 sleep函数的具体用法 C语言中的sleep() 函数 sleep函数的具体用法 相关问题: 匿名网友: 关于sleep()函数在windo ...
- main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...
PHP 和 JavaSript 区别_后端开发 PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,主要用于Web开发领域,而JavaSript是一种具有函数优先的轻量级,解释型或即时编译型的高 ...
- C语言中itoa系列函数及sprintf系列函数使用详解
C语言中itoa系列函数及sprintf系列函数使用详解 itoa函数系列 该系列函数是广泛使用的非标准C语言和C++语言扩展功能,只能在windows编译器下使用,如果涉及到跨平台是不允许使用的,这 ...
- c语言其他函数调用main函数,C语言中的main函数以及main函数是如何被调用的
main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是: int main(int argc, char *argv[]); 其中argc是命令行参数的个数,ar ...
- c语言中的printf函数_C语言中的printf()函数与示例
c语言中的printf函数 C语言中的printf()函数 (printf() function in C) The printf() function is defined in the <s ...
- C语言中的atoi函数的实现
C语言中有很多的库函数,其实平时没事的时候多去实现一下里面的库函数还是很有用的,下面就来讲一讲C语言中的atoi函数,这个函数的主要功能是将一个字符串转化为一个数字,可能第一眼看上去,你会觉得这是一个 ...
- C语言中的sprint函数,求sprintf函数的详解
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求sprintf函数的详解,要附带例,粘贴来的也可以,只 问题详情:还有就是我还想要一些常用的宽度修饰之类的输入或者输出格式:回答: ...
- C语言中的Sleep函数的解读
Sleep函数: 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 注意: 在VC中使用带上头文件#include <windows.h& ...
最新文章
- GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!
- 裁员屠刀下一个目标会是谁?
- 如何用python最快的获取大文件的最后几行
- opencv+yolov3实现目标检测
- 【跟着我们学Golang】Go语言全平台安装
- linux中文本查找命令,Linux常用的文本查找命令 find
- android EditText光标位置,光标样式,EditText限制输入内容,软键盘遮挡的EditText,搜索框,限制输入表情
- RsyncServer服务无法启动的解决方法
- (78)FPGA时钟激励(forever)
- 计算机桌面图标有小纸张,电脑桌面图标上都有个小图标,为什么
- 转:10+年程序员总结的20+条经验教训
- 搜狗拼音输入法2015 v7.5 官方版​
- 自学IT和接受IT培训两者的优缺点分析
- 2022-2027年中国香薰蜡烛行业市场调研及未来发展趋势预测报告
- 2022年第十四届华中杯数学建模A题解题思路附代码
- 2020考研初试经验贴
- python专科就业前景_Python就业前景怎么样?
- 1023 穷游?“穷”游?
- 微信接口开发申请服务器,开发微信服务器接口的实例教程
- plc转单片机,永久使用
热门文章
- 2018年我国人均国民总收入达到9732美元,国民经济持续快速增长
- java excel转pdf linux_docker安装libreoffice并实现把Excel转为pdf
- 鹰式价差matlab,鹰式期权:什么叫铁鹰式期权组合,蝶式价差期权?
- 电梯轿厢内电动车自行车人数据集,VOC标签格式已标注
- arcgis 10 扩展模块授权无效的解决方法
- 陈坤发微博调侃 回应儿子生母话题
- DY-SV17F运用集—语音IC
- CDR插件开发之Addon插件001 - 从零开始安装VS2022详细步骤
- Emoji表情的的文字编码问题
- 苹果笔记本电脑我的计算机在哪里设置密码,苹果笔记本忘记密码怎么办