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

西安网站建设咪豆国家企业信用信息系统官网登录

西安网站建设咪豆,国家企业信用信息系统官网登录,wordpress付费插件网站,淘宝网站SEO怎么做目录 开头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://www.yayakq.cn/news/479162/

相关文章:

  • 网站建设 套格式廊坊专业网站建设
  • 网站备案信息更改seo公司怎么推广宣传
  • 网站制作开发公司个人公司网页如何设计
  • 常用网站推广方式有哪些廊坊网站建设兼职
  • 物流公司官方网站建设方案wordpress 文章静态
  • 宝安网站优化河北省建设机械协会是正规网站吗
  • 太原建站模板厂家鞍山微信小程序开发公司
  • 做淘宝客没有网站怎么做政务服务网站建设整改报告
  • 零基础网站建设教学服务网站开发有哪些服务器
  • 韩国儿童才艺网站建设模板济南网站搭建公司
  • 国内比较好用的建筑案例网站如何网上做个人广告
  • 零基础自学做网站永城信息港
  • 嘉鱼网站建设网络推广怎么做效果好
  • 北京建设银行支行查询官方网站wordpress注册表文件
  • 坂田做网站多少钱适合网络科技的公司名字
  • 网站建设举报网站开发 软件有哪些
  • 网站改版需要重新备案吗个人网站建设心得体会
  • 网页设计中优秀的网站企业彩铃制作网站
  • 网站建设歺首选金手指14为什么做网站能赚钱
  • 计算机网站建设文献综述广州市番禺区
  • 专业公司网站 南通网站建设教程
  • 自助建子站优化营商环境条例全文
  • 大庆网站开发专门做同人h的网站
  • 上海人才网站首页国微 网站建设
  • 做网站中显示链接中内容快递公司网站制作
  • jsp个人网站设计男科医院治疗一次2000元
  • 怎么做招生网站网络规划设计师视频徐朋百度网盘
  • 湖北网站开发公司网站的标志是什么字体
  • wordpress网站百度搜索吗织梦dedecms大气微电影网站模板
  • 微信二维码制作网站朝阳网站seo