使用qsort函数实现结构体
#include<stdo.h>
#include<stdlib.h>
//库里面的qsort()函数
//解释:
//void qsort(void* base, //base指向要排序的数组的第一个对象的指针(地址),转换为 .void*
// size_t num, //排序数据元素个数。
// size_t size,//数组中每个元素的大小(以字节为单位)。
// int (*compar)(const void*a, const void*b));//比较待排序数据中的2个元素的函数
//四个参数,第四个参数是函数指针,因为int(*)();
struct Stu
{
char name[20];
int age;
};
int qsort_ci(const void* a, const void* b)
{
return ((struct Stu*)a)->age - ((struct Stu*)b)->age;
}
int qsort_ci2(const void* a, const void* b)
{
return strcmp(((struct Stu*)a)->name, ((struct Stu*)b)->name);
}
void test2()
{
//使用qsort()函数排序结构体数据
struct Stu s[3] = { {"z家辉儿子",22}, {"c幸宾儿子",22}, {"j江丰儿子",23}};
int sz = sizeof(s) / sizeof(s[0]);
//按照年龄排序
qsort(s, sz, sizeof s[0], qsort_ci);
//按照名字排序
qsort(s, sz, sizeof s[0], qsort_ci2);
}
int main()
{
test2();
return 0;
}
使用qsort函数实现结构体相关推荐
- C语言经典例71-编写函数输出结构体数据
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 编写input()和output()函数输入,输出5个学生的数据记录. 2 分析 定义结构体,声明结构体数组,再编写函数传入结构体数组指针到 ...
- C++:C++语言入门级基础知识考察点回顾之函数、结构体和类
C++:C++语言入门级基础知识考察点回顾之函数.结构体和类 目录 C++的函数 1.函数的定义.调用,全局变量局部变量 1.1.自定义函数求其倒数
- 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
http://blog.csdn.net/windeal3203/article/details/39320605 Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq ...
- C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例
C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...
- 通过宏函数计算结构体成员偏移量
编译器在为结构体成员分配内存时,由于存在内存对齐机制,各个成员所占空间可能不是连续的,因而不能简单的通过成员类型所占的字长来推断其它成员或结构体对象的地址. 获得结构体成员偏移量的方法可以参照 ...
- 洛谷刷题记录(python)【入门6】函数与结构体
[入门6]函数与结构体https://www.luogu.com.cn/training/105#problems P5735 [深基7.例1]距离函数 import mathdef solve(a, ...
- 练习-编写函数对结构体类型数据进行排序
第1关:编写函数对结构体类型数据进行排序 任务描述 本关任务:定义学生结构体数据类型,从键盘输入一批学生的信息,编写函数将这批学生按姓名排序. 相关知识 结构体变量之间整体是不可以比较大小的,结构体变 ...
- 【C 语言】结构体 ( 结构体作为函数参数 | 结构体指针作为函数参数 )
文章目录 一.结构体作为函数参数 二.结构体指针作为函数参数 三.完整代码示例 一.结构体作为函数参数 结构体变量 作为函数形参 , 在函数中 , 只能访问 该函数形参 , 无法修改 结构体内存 的值 ...
- C++函数(三)------函数与结构体
------------------------函数与结构体--------------------------------- 1.结构体复习 关于结构体,我以前有对结构体做过基础的讲解. 我们可以使 ...
最新文章
- RHEL7 timedatectl命令
- MySQL的binlog数据如何查看
- ModuleNotFoundError: No module named ‘mmcv._ext‘
- mysql命令行方式添加用户及设置权限
- 线上分享 | 数据产品经理:如何突破现状,更进一层?
- 企业中的微服务:敌是友?
- ASP.Net请求处理机制初步探索之旅 - Part 1 前奏
- transient关键字和volatile关键字
- 庞伟(为奥运冠军名字作诗)
- C#基础 面试中常出现的问题
- Android集成三方腾讯浏览器X5内核
- Ubuntu 20.04美化及QQ、微信、ssh客户端安装
- 实验吧_网站综合渗透_Discuz!
- Arcanist用法简介
- 学习操作系统,都有哪些硬核网站?
- HTML字符实体,转义字符串
- 让计算机猜测你心中想的0-100之间的一个整数
- QQ登录提示:登录超时,请检查您的网络或者本机防火墙设置(错误码:0x00000001)
- php个人博客程序推荐,推荐五款不错的个人博客程序
- NX二次开发-UFUN读取图纸尺寸的值UF_DRF_ask_dimension_text