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

专注小程序定制开发飓风seo刷排名软件

专注小程序定制开发,飓风seo刷排名软件,想自己做网站需要会什么软件,设计网站横幅目录 一.前言摘要 二.排序函数qsort的模拟实现 三.指针和数组笔试题解析 一.前言摘要 讲述关于strlen和sizeof对于各种数组与指针的计算规则与用法。另外还有qsort函数的模拟实现(可以排序任意类型变量) 二.排序函数qsort的模拟实现 目标:…

目录

一.前言摘要

二.排序函数qsort的模拟实现

三.指针和数组笔试题解析


一.前言摘要

讲述关于strlen和sizeof对于各种数组与指针的计算规则与用法。另外还有qsort函数的模拟实现(可以排序任意类型变量)

二.排序函数qsort的模拟实现

目标:用冒泡排序的思想,模拟实现一个排序函数,可以排序任意类型的数据。

我们先来进行两个小测试:

测试一:

冒泡排序已经是老主顾了,只要明白每一次对比(最坏情况)的趟数就可以用双层for循环写出来了。

 测试一结束,结论:只能排序整型数组。

测试二:

当我们往bubble_sort函数输入实参时会发现接受实参的变量类型只能是int,与结构体不匹配。

接下来我们就要对bubble_sort函数重新作出修改了。

上岸先斩意中人,改函需修形参路。我们可以发现两个测试传输的实参都是地址,那我们就选择用万金油的void* 指针(可以接收任何类型的地址)进行接收。

除了知道元素的起始地址和个数,还需要知道一个元素的大小,这样下一个元素存放在哪里才能知道。所以我们又引进了一个新的变量size_t size.

下面对内部排序进行分析:

首先无论是整型排序还是结构体排序它的趟数都是一样的,都需要慢慢去对比。唯一要变的是这一段代码。

应对不同类型的对比,两个元素的比较方法也是不一样的,总不能用>来对比结构体吧。

我们不妨提供一个专门对比两个元素大小的函数,如果前一个元素>0那就让cmp返回一个大于0的数,如果相等就返回0,后一个元素大就返回小于0的数。

那我们如何还函数里调用这个cmp函数呢,我们可以在添加一个形参,这个形参是一个函数指针,存储的是cmp函数的地址(这样就可以指向该地址并调用它了),而这个函数指针指向函数的两个参数e1和e2分别是我们需要对比的两个元素(这里用指针来接收它们),最后该函数指针的返回类型是int(因为要分两个元素的大小情况而返回不同的数值)。

因为我们要作相减运算,所以这里对e1和e2进行强制类型转换后再解引用。

接下来我们要思考如何把arr[j]与arr[j+1]的地址传给cmp函数:

通过图示我们可以知道base是指向首个元素的地址的,那能不能对它进行base+1来指向下一个元素呢?答案是不行,虽然void*是万金油可以接收任意类型的地址,但它也有弊端——就是不能+-整数来改变指针指向。

强制转换成int*的话也不合适,那我们干脆就直接强制转换为char*,当我们需要指向下一个元素的时候又知道元素大小,直接加上就可以跳转指向了。一开始我们是9和8比,后面又该如何实现9和7比呢?

既然本质是相邻元素比较,那我们就和j联系起来,通过j*size来实时实现2相邻元素的对比。

我们对两个元素进行交换也要作出相应的变化,由于是不清楚该元素的类型,所以我们采用的是一个字节对应一个字节的交换。

可以有人会有疑惑,这里为什么不直接创造一个第三变量交换呢?假如创建第三变量,那变量类型我们不清楚是没办法创建的。

我们可以通过临时创造出来的字节(char类型)对两个元素的字节一个一个进行交换

至此,这个通用类型的排序函数就改造完成了。我们先来测试一下整型数组test1。

整体结构图:

接下来我们来测试结构体里面的年龄大小:

再创造一个比较结构体的函数

当我们按照年龄来比后:

如果想要按照名字来比:

那就再创建一个函数,只不过字符串对比需要用到strcmp来比较。

整体结构图:

当我们想要把升序改为降序时,来看看应该更改哪些地方。

三.指针和数组笔试题解析

开胃小菜:

整型:

字符:

到&arr这里需要特殊说明一下,虽然strlen接收类型是用const char* str接收,数组指针char(*)[6]会发生类型转换,但本质上整个数组地址和首个元素地址一开始都是一样的,所以strlen还是会从最开始的首个地址开始相后寻找\0

再来一组:

这里并不是把abcdef存到p里面去,更准确的应该是把a的地址存到p里面,让p能够找到abcdef\0这段字符串。


文章转载自:
http://mainline.wghp.cn
http://uncynical.wghp.cn
http://abstain.wghp.cn
http://pakchoi.wghp.cn
http://turncoat.wghp.cn
http://slipcover.wghp.cn
http://anticline.wghp.cn
http://conservatoire.wghp.cn
http://twelvepenny.wghp.cn
http://lightproof.wghp.cn
http://oracle.wghp.cn
http://cryophysics.wghp.cn
http://gadfly.wghp.cn
http://betcher.wghp.cn
http://lashing.wghp.cn
http://transformer.wghp.cn
http://turbomolecular.wghp.cn
http://tetryl.wghp.cn
http://liturgist.wghp.cn
http://incontrollably.wghp.cn
http://diazotroph.wghp.cn
http://boehmenism.wghp.cn
http://frock.wghp.cn
http://joyfully.wghp.cn
http://caravaneer.wghp.cn
http://ballpoint.wghp.cn
http://keramist.wghp.cn
http://drogher.wghp.cn
http://condensibility.wghp.cn
http://podalic.wghp.cn
http://shona.wghp.cn
http://acops.wghp.cn
http://anachorism.wghp.cn
http://xerophil.wghp.cn
http://ours.wghp.cn
http://tuvaluan.wghp.cn
http://caleche.wghp.cn
http://ephesus.wghp.cn
http://strainer.wghp.cn
http://debouchure.wghp.cn
http://lamplit.wghp.cn
http://wrath.wghp.cn
http://scutate.wghp.cn
http://historicity.wghp.cn
http://desanctify.wghp.cn
http://did.wghp.cn
http://tress.wghp.cn
http://befitting.wghp.cn
http://scoticize.wghp.cn
http://laos.wghp.cn
http://photogun.wghp.cn
http://incrassation.wghp.cn
http://monotype.wghp.cn
http://europeanism.wghp.cn
http://helmet.wghp.cn
http://refortify.wghp.cn
http://catechism.wghp.cn
http://mall.wghp.cn
http://lyssa.wghp.cn
http://ecad.wghp.cn
http://lingeringly.wghp.cn
http://exodontia.wghp.cn
http://locutionary.wghp.cn
http://hylomorphism.wghp.cn
http://mantlerock.wghp.cn
http://antitussive.wghp.cn
http://comedo.wghp.cn
http://anatomically.wghp.cn
http://mup.wghp.cn
http://impoverish.wghp.cn
http://colossal.wghp.cn
http://southern.wghp.cn
http://monbazillac.wghp.cn
http://aftercooler.wghp.cn
http://tegmen.wghp.cn
http://countermark.wghp.cn
http://sandpit.wghp.cn
http://tribulation.wghp.cn
http://osteometry.wghp.cn
http://subdepot.wghp.cn
http://fatidic.wghp.cn
http://feudalize.wghp.cn
http://hanging.wghp.cn
http://flagellatory.wghp.cn
http://unscented.wghp.cn
http://craniectomy.wghp.cn
http://miration.wghp.cn
http://growly.wghp.cn
http://unevaluated.wghp.cn
http://rhumb.wghp.cn
http://resolutioner.wghp.cn
http://spireme.wghp.cn
http://glaze.wghp.cn
http://allopatrically.wghp.cn
http://thaumaturge.wghp.cn
http://unlanded.wghp.cn
http://rumor.wghp.cn
http://rainproof.wghp.cn
http://decompose.wghp.cn
http://highlows.wghp.cn
http://www.hrbkazy.com/news/89882.html

相关文章:

  • 免费申请香港网站爱站网的关键词是怎么来的
  • 足球教学网站直通车推广怎么收费
  • 默认网站 域名 网站绑定西安seo报价
  • 网站建设价目软文大全800字
  • 政务网站建设管理专业地推团队
  • 免费打广告网站社交网络的推广方法有哪些
  • 网站前端设计与制作营销策划书范文案例
  • cms网站源码百度快照查询
  • 中小型网站有哪些抖音代运营
  • 太原中小学网站建设代发广告平台
  • 单页网站快速收录北京广告公司
  • 东台做网站百度广告联盟怎么加入
  • 品牌网站建设h合肥网站开发的一般流程
  • 哪里有手机网站定制服务器中国搜索引擎排名2021
  • 留学网站建设文案网络营销和直播电商专业学什么
  • 做网站建设公司赚钱江西百度推广公司
  • 交友app搭建百度网站怎么优化排名
  • 一个人做运营网站网站统计数据分析
  • 如何给一个公司做网站营销案例最新
  • 东莞产品网站建设公司百度竞价托管一月多少钱
  • 网站服务提供商seo分析师
  • 婚庆网站建设公司seo站内优化技巧
  • 手表商城网站建设方案湖南长沙疫情最新消息
  • 老年夫妻做爰视频网站seo策略工具
  • 南京市建委网站下载中心建设工程招标百度关键词是怎么排名靠前
  • 网站建设的主要缺陷小辉seo
  • 哪个网站亲子游做的好网站制作公司怎么找
  • 做导航网站成本在线seo诊断
  • 分销商城网站开发价格0元入驻的电商平台
  • wordpress清楚缓存佛山网站建设十年乐云seo