当前位置: 首页 > news >正文

500m主机空间能做视频网站吗装潢设计就业前景

500m主机空间能做视频网站吗,装潢设计就业前景,会员管理系统软件排名,找人做网站会给源代码吗文章目录 #x1f680;前言#x1f680;void*类型指针#x1f680;库函数qsort的使用#x1f680;利用冒泡排序实现库函数qsort() #x1f680;前言 今天阿辉将为大家介绍库函数qsort的使用#xff0c;还包括利用冒泡排序模拟实现qsort以及void*类型的指针#xff0c;关… 文章目录 前言void*类型指针库函数qsort的使用利用冒泡排序实现库函数qsort() 前言 今天阿辉将为大家介绍库函数qsort的使用还包括利用冒泡排序模拟实现qsort以及void*类型的指针关注阿辉不迷路哦 内容干货满满接下来就跟着阿辉一起学习吧 void*类型指针 铁子们都知道一种指针只能接收同类型的地址否则编译器就会报错那有没有可以接收任意类型地址的指针呢答案是有的就是void*类型的指针 例如 int a 10; char c c; float f 1.2f; void*p NULL; p a; p c; p f;void*类型指针可以接受任何类型的变量的地址它就像一个“垃圾桶”一样任何的地址都可以往里面“扔”所以他也被称为泛型指针但是void*类型的指针也有它的局限性因为void*无具体类型SOvoid*类型的指针无法进行指针运算也无法进行解引用操作 既然如此那void*类型的指针有何应用场景铁子们别急我们接着看 库函数qsort的使用 铁子们咱们今天的重点来了qsort()是C语言标准库提供的专门用来给数组排序的一个库函数 qsort()函数的声明 void qsort(void* base, size_t num, size_t size, int (*compar)(const void* p1, const void* p2));库函数qsort()有四个参数 不返回 void* base 这个参数是指向数组首元素的指针 size_t num这个参数指的是数组中的元素个数 size_t size这个参数是数组中每个元素的大小以字节为单位 对于库函数qsort()的第四个参数int (*compar)(const void* ,const void*)是一个函数指针要使用qsort()得我们自己定义一个返回值为int类型有两个const修饰的void*类型的指针的参数并且返回值遵循如下规则的函数 返回值 0 第一个参数应在第二个参数前无需交换 返回值 0 第二个参数应在第一个参数前需要交换 返回值 0 谁在前无所谓无去交换qsort()函数最厉害的就是它可以给任何数据排序并且可以根据我们提供的比较函数实现升序或是降序铁子们我们来看看qsort()是如何使用的 #includestdio.h #includestring.h #includestdlib.h struct Stu {int age;//年龄char name[20];//名字 }; //以结构体Stu成员age的数字大小排升序 int StuAgecomp(const void* p1, const void* p2) {return ((struct Stu*)p1)-age - ((struct Stu*)p2)-age; } //以结构体Stu成员name利用库函数strcmp()给字符串排序 int StuNamecomp(const void* p1, const void* p2) {return strcmp(((struct Stu*)p1)-name, ((struct Stu*)p2)-name); } //打印函数打印排序后内容 void print(struct Stu arr[],int size) {for (int i 0; i size; i){printf(%d %s , arr[i].age, arr[i].name);}printf(\n); }int main() {struct Stu arr[] { {19,tangminghui},{12,tanzihao},{30,zenghongsen} };int size sizeof(arr[0]);//数组每个元素的大小单位字节int num sizeof(arr) / size;//数组的元素个数qsort(arr, num, size, StuAgecomp);print(arr,num);qsort(arr, num, size, StuNamecomp);print(arr,num);return 0; }输出 利用冒泡排序实现库函数qsort() 相信铁子们对冒泡排序并不感冒库函数qsort()的内核其实就是快排不过阿辉实力有限暂时还不会 这里阿辉利用冒泡函数给大家徒手干一个 函数名就叫UpgradeBubbleSort升级版冒泡排序 以下简称冒泡函数 我们的冒泡函数的参数与库函数qsort一样排序就是冒泡排序的皮主要的问题是泛型参数如何交换这里我们定义一个交换函数swp来实现 下面是冒泡函数的具体实现代码以及详解注释 void UpgradeBubbleSort(void* base, size_t num, size_t size, int (*cmp)(const void* p1, const void* p2)) {for (int i 0; i num - 1; i){int flag 0;//记录一趟下来是否发生交换for (int j 0; j num - i - 1; j){//数据的大小这时就有用了找到后一个数据的起始地址char* p (char*)base j * size;//利用一个变量简化代码//像下面注释这么写太挫了//if (cmp((char*)base j * size, (char*)base (j 1) * size))//冒泡排序的思想嘛前一个数据和后一个比if (cmp(p, p size) 0){swp(p, size);flag 1;}}if (flag 0)//没有交换说明已有序无须继续跳出循环{break;}} }为什么要把void*指针强制转化为char*类型第一点因为方便根据数据大小找到数据char*加减整数跳过该整数倍数的字节空间和数据大小size结合使用就能找到数据中每个元素第二点因为交换数据时把对应位置上的一个字节大小空间中的内容交换即可交换两个数据的内容 给铁子们上图 swp函数的具体实现代码以及详解注释 //交换函数 void swp(char* p, int sz) {//有几个字节交换几次//psz表示下一个数据for (int i 0; i sz; i){//俩个数据对应位置的字节交换位置完成交换char tmp *(p i);*(p i) *(p sz i);*(p sz i) tmp;} }下面是完整的升级版冒泡排序函数 //交换函数 void swp(char* p, int sz) {for (int i 0; i sz; i){//俩个数据对应位置的字节交换位置完成交换char tmp *(p i);*(p i) *(p sz i);*(p sz i) tmp;} }//套着标准冒泡排序的皮 void UpgradeBubbleSort(void* base, size_t num, size_t size, int (*cmp)(const void* p1, const void* p2)) {for (int i 0; i num - 1; i){int flag 0;//记录一趟下来是否发生交换for (int j 0; j num - i - 1; j){char* p (char*)base j * size;//利用一个变量简化代码//像下面注释这么写太挫了//if (cmp((char*)base j * size, (char*)base (j 1) * size))if (cmp(p, p size) 0){swp(p, size);flag 1;}}if (flag 0)//没有交换说明已有序无须继续跳出循环{break;}} }到这里阿辉今天对于C语言中库函数qsort()的分享就结束了希望这篇博客能让大家有所收获, 如果觉得阿辉写得不错的话记得给个赞呗你们的支持是我创作的最大动力
http://www.hkea.cn/news/14368781/

相关文章:

  • 策划网站做推广的公司官方新闻平台有哪些
  • 中国建设银行网站上不去河南省近期新闻热点
  • 合肥高端网站扬州网站建设企业
  • 设置一个网站到期页面怎么样提升自己的学历
  • 网站开发 分类编码中国建设银行官网站保本理财
  • 简洁大气网站模板企业邮箱怎么申请的
  • 苏州市住房城乡建设局网站在百度搜不到网站
  • 网站做关键词链接有用吗惠州市网站制作公司
  • jsp网站开发四酷全书小程序模板源码免费下载
  • h5哪个网站可以做上海市建设监理协会网站查询
  • 要建立网站是否要先做网页设计_然后把网页设计与数据库连接起来?营销网站与传统网站的区别
  • dw网站导航怎么做个人网站如何备案
  • 瑞金网站建设光龙电子商务网站规划与设计
  • 运营好还是网站开发好wordpress和织梦百度收录
  • 网站建设和维护待遇怎样建站至尊
  • 英国小子做房产网站上海专业做网站的
  • 手机wap版网站制作青海省建设局网站首页
  • 企业网站哪里可以做网站建设属于技术服务吗
  • 百度云虚拟主机做网站python基础教程 入门教程
  • 网站改版方案案例wordpress招聘主题
  • 福州市建设厅网站thinkphp怎么做网站
  • 贵安新区住房和城乡建设厅网站技术支持 广州网站建设
  • 福州做网站哪家公司好浙江杰立建设集团 网站首页
  • 100个有趣的网站信息网络公司经营范围
  • 网站建设费用怎么记账铜仁网站建设哪家专业
  • 做app和做网站遵义建站
  • 电信网站服务器制作一个网站的费用是多少钱
  • 免费的网站模板哪里有网站风格设计视觉
  • 百度不收入我的网站了国内网站设计案例
  • 上海网站建设案例网站官方首页设计