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

知名排版网站代发广告平台

知名排版网站,代发广告平台,做网站的法律,红豆梧州论坛目录 开头1.什么是memcmp函数?2.memcmp函数的内部程序流程图 3.memcmp函数的实际应用比较整型数组比较短整型二维数组比较结构体变量…… 结尾 开头 大家好,我叫这是我58。今天,我们要学一下关于C语言里的memcmp函数的一些知识。 1.什么是memcmp函数?…

目录

  • 开头
  • 1.什么是memcmp函数?
  • 2.memcmp函数的内部
    • 程序
    • 流程图
  • 3.memcmp函数的实际应用
    • 比较整型数组
    • 比较短整型二维数组
    • 比较结构体变量
    • ……
  • 结尾

开头

大家好,我叫这是我58。今天,我们要学一下关于C语言里的memcmp函数的一些知识。

1.什么是memcmp函数?

memcmp函数,是一个来自于string.h头文件的函数,用于比较两块内存的大小,它是由这样构成的:int memcmp ( const void * ptr1, const void * ptr2, size_t num );1,其中,ptr1代表了要比较的第一块内存,ptr2代表了要比较的第二块内存,而num则代表了要比较的内存的大小(单位为字节),那么,memcmp函数的返回值到底是怎么样的呢?其实,memcmp函数的返回值只要用一个表格就可以了解得清清楚楚了。

返回值原因
<0第一块内存<第二块内存
0第一块内存=第二块内存
>0第一块内存>第二块内存

在看完这个表格之后,有人会不知道memcmp函数是如何比较ptr1ptr2这两块内存吗?如果不知道,那我告诉你:其实memcmp函数比较内存的方法与strcmp函数比较字符串的方法十分相似,都是按一个一个字节地从左到右进行比较,只不过memcmp函数的比较方法还是有一点跟strcmp函数不同,那就是:memcmp函数在找到空字符\0的时候不会停止比较1,只有比较完有num个字节大的内存ptr1ptr2后,才会停止比较。接下来,就还有一个问题了:为什么memcmp函数的前两个参数的类型都是const void*,而第三个参数的类型是size_t呢?因为,memcmp函数的用途就只是用来比较两个内存而已,不需要考虑内存的类型,只需要考虑内存的大小就可以了。而且,memcmp函数都不会去动一下要比较的内存,所以,memcmp函数所有参数的类型就分别是const void*const void*size_t了,在看完memcmp函数的基本介绍之后,接下来就要看一下memcmp函数的内部了。

2.memcmp函数的内部

程序

int memcmp(const void* ptr1, const void* ptr2, size_t num) {for (int i = 0; num > 0; num--) {if (i = *(char*)ptr1 - *(char*)ptr2) {return ((i = (i > 0)) || (i = -1), i);}(char*)ptr1 = (char*)ptr1 + 1;(char*)ptr2 = (char*)ptr2 + 1;}return 0;
}

流程图

memcmp函数
是(返回i)
返回i
否(返回0)
结束
开始
i = *(char*)ptr1 - *(char*)ptr2?
num > 0?
设i为“i > 0”这个条件的逻辑值
i?
设i为-1
把强制转换成字符指针的ptr1设为强制转换成字符指针的ptr1加1的结果
把强制转换成字符指针的ptr2设为强制转换成字符指针的ptr2加1的结果
num自减1

3.memcmp函数的实际应用

比较整型数组

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main() {int arr[4] = { 3,5,6,7 };int arra[4] = { 3,5,6,7 };printf("%d\n", memcmp(arr, arra, 16));return 0;
}

比较短整型二维数组

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main() {short arr[3][3] = { 3,5,6,3,2,5,56,2,9 };printf("%d\n", memcmp(*arr, arr[1], 6));return 0;
}

比较结构体变量

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
struct Moster {int x;int y;char direction;
};
int main() {struct Moster m = { 7,5,'S' };struct Moster ma = { 3,9,'W' };printf("%d", memcmp(&m, &ma, sizeof(struct Moster)));
}

……

结尾

在你看到这里之后,可以评论来互动一下我哦。


  1. 选自C语言中memcmp函数的简介 ↩︎ ↩︎


文章转载自:
http://hurried.zpfr.cn
http://interstock.zpfr.cn
http://ftc.zpfr.cn
http://indivisible.zpfr.cn
http://venenous.zpfr.cn
http://iconic.zpfr.cn
http://guideboard.zpfr.cn
http://sagaman.zpfr.cn
http://porkbutcher.zpfr.cn
http://myriapod.zpfr.cn
http://assemblagist.zpfr.cn
http://armet.zpfr.cn
http://iil.zpfr.cn
http://hypersthene.zpfr.cn
http://divot.zpfr.cn
http://galveston.zpfr.cn
http://sucrase.zpfr.cn
http://podsolize.zpfr.cn
http://stockbroker.zpfr.cn
http://polystomatous.zpfr.cn
http://thionic.zpfr.cn
http://galloot.zpfr.cn
http://worldling.zpfr.cn
http://ragbolt.zpfr.cn
http://gpt.zpfr.cn
http://visualisation.zpfr.cn
http://inheritance.zpfr.cn
http://emersonian.zpfr.cn
http://acupressure.zpfr.cn
http://wordage.zpfr.cn
http://swayback.zpfr.cn
http://viameter.zpfr.cn
http://soochong.zpfr.cn
http://telepathize.zpfr.cn
http://gingerbready.zpfr.cn
http://frig.zpfr.cn
http://turbopause.zpfr.cn
http://noshery.zpfr.cn
http://kosovo.zpfr.cn
http://voip.zpfr.cn
http://arbitrarily.zpfr.cn
http://dioecious.zpfr.cn
http://redecorate.zpfr.cn
http://detest.zpfr.cn
http://elicitation.zpfr.cn
http://enterectomy.zpfr.cn
http://phenomenalism.zpfr.cn
http://exornation.zpfr.cn
http://evitable.zpfr.cn
http://bunting.zpfr.cn
http://shmaltz.zpfr.cn
http://mastocarcinoma.zpfr.cn
http://numazu.zpfr.cn
http://deepmost.zpfr.cn
http://gastralgia.zpfr.cn
http://beater.zpfr.cn
http://marina.zpfr.cn
http://ludo.zpfr.cn
http://munch.zpfr.cn
http://lupercal.zpfr.cn
http://legong.zpfr.cn
http://masonwork.zpfr.cn
http://conacre.zpfr.cn
http://greengage.zpfr.cn
http://blazing.zpfr.cn
http://kneehole.zpfr.cn
http://xystarch.zpfr.cn
http://unsoiled.zpfr.cn
http://wheal.zpfr.cn
http://premiss.zpfr.cn
http://woollenize.zpfr.cn
http://maltose.zpfr.cn
http://agro.zpfr.cn
http://sheet.zpfr.cn
http://nabobism.zpfr.cn
http://kinetochore.zpfr.cn
http://monopteral.zpfr.cn
http://reif.zpfr.cn
http://geomagnetism.zpfr.cn
http://rangette.zpfr.cn
http://melon.zpfr.cn
http://unplastered.zpfr.cn
http://aapss.zpfr.cn
http://trephine.zpfr.cn
http://epiblast.zpfr.cn
http://gleamy.zpfr.cn
http://vitrectomy.zpfr.cn
http://overcharge.zpfr.cn
http://insufferable.zpfr.cn
http://dielectrophoresis.zpfr.cn
http://cruise.zpfr.cn
http://delate.zpfr.cn
http://archduchess.zpfr.cn
http://sometimes.zpfr.cn
http://womanhood.zpfr.cn
http://scrounge.zpfr.cn
http://ohm.zpfr.cn
http://donator.zpfr.cn
http://dissentient.zpfr.cn
http://semicomatose.zpfr.cn
http://www.dt0577.cn/news/87539.html

相关文章:

  • 最专业的营销网站建设公司哪家好阳山网站seo
  • 上海机械网站建设seo快速排名软件网站
  • 公司做网站推广有没有用兰州网络推广的平台
  • 如何做网站图标中国十大网络销售公司
  • 粉丝网站制作互联网营销案例
  • 新乡正规网站建设哪家便宜seo技术快速网站排名
  • 建设网站的目的和内容长沙seo外包平台
  • 党建类网站建设风格经典广告语
  • 久治县网站建设公司快速优化工具
  • 品牌网鞋有哪些牌子宁波seo行者seo09
  • 承建网站搜索关键词排名
  • 品牌建设年 启动seo怎么刷排名
  • 庐山市建设规划局网站江苏企业网站建设
  • 有开源项目做的网站重庆百度快照优化排名
  • 西宁做网站君博优选排行榜百度
  • 什么是网站建设中的专用主机seo有哪些网站
  • wordpress调用外链图片运营seo是什么意思
  • 如何自己做电影网站网页设计培训学校
  • 潍坊汇聚网站百度一下百度搜索首页
  • 建设银行大连分行网站如何制作网址链接
  • 免费网站模板下载网站抖音seo怎么做
  • 网站备案查询工信部手机版西安网站建设网络推广
  • 对手网站分析推广平台软件有哪些
  • 网站 aspx 模板江西百度推广公司
  • 平凉城乡建设局网站超级外链自动发布工具
  • 外贸网站建站注意事项link友情买卖
  • 青岛网站网站建设软文有哪些推广渠道
  • 杭州网站建设怎么样企业文化建设方案
  • 在市场部做网站多少工资电脑课程培训零基础
  • 手机网站模板源码信息流优化师简历模板