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

女生做网站后期维护工作好吗拉新推广怎么做

女生做网站后期维护工作好吗,拉新推广怎么做,互联网公司排名1000,上海建设项目中标公示网站文章目录 1. memcpy使用和模拟实现2. memmove使用和模拟实现3. memset函数的使用4. memcmp函数的使用 1. memcpy使用和模拟实现 返回类型和参数: void * memcpy ( void * destination, const void * source, size_t num );1.函数memcpy从source的位置开始向后复制…

文章目录

    • 1. memcpy使用和模拟实现
    • 2. memmove使用和模拟实现
    • 3. memset函数的使用
    • 4. memcmp函数的使用


1. memcpy使用和模拟实现

返回类型和参数:

void * memcpy ( void * destination, const void * source, size_t num );

1.函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。
2.这个函数在遇到 ‘\0’ 的时候并不会停下来。
3. 如果source和destination有任何的重叠,复制的结果都是未定义的。
4.注意单位是字节
5.头文件:#include<string.h>

memcpy使用:

int main() {int arr[20] = { 0 };//目标数组int arr1[] = { 1,2,3,4,5 };//源数组memcpy(arr, arr1, 20);//20单位是字节for (int i = 0; i < 5; i++) {//拷贝完打印printf("%d ", arr[i]);}return 0;
}

运行结果:
在这里插入图片描述

memcpy模拟实现

1.我们创建一个返回类型和参数于memcpy函数相同的函数
2.因为memcpy函数拷贝的单位是字节,所以我们在拷贝是将类型转化为(char*)类型
3.通过循环来拷贝

代码实现:

void* mn_memcpy(void* p1, const void* p2, size_t n) {assert(p1);//判断是否为空指针,参数和类型memcpy一样assert(p2);while (n) {//控制拷贝多少个字节*((char*)p1) = *((char*)p2);//将void*转化为char*(一字节)((char*)p1)++; ((char*)p2)++;n--;//}
}
int main() {int arr[20] = { 0 };int arr1[] = { 1,2,3,4,5 };mn_memcpy(arr, arr1, 20);for (int i = 0; i < 5; i++) {//拷贝完打印printf("%d ", arr[i]);}return 0;
}

运行结果:
在这里插入图片描述

2. memmove使用和模拟实现

返回类型和参数:

void * memmove ( void * destination, const void * source, size_t num );

1.和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。
2. 如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。
3. 单位是字节
4. 头文件:#include<string.h>

memmove 使用:

 int main() {int arr1[] = { 1,2,3,4,5 };memmove(arr1+1, arr1, 3*sizeof(int));for (int i = 0; i < 5; i++) {//拷贝完打印printf("%d ", arr1[i]);}return 0;
}

运行结果:
在这里插入图片描述
memmove模拟:

1.我们创建一个返回类型和参数于memmove函数相同的函数
2.因为memmove函数拷贝的单位是字节,所以我们在拷贝是将类型转化为(char*)类型
3.我们要分三种情况考虑,再通过循环拷贝

三种情况:
在这里插入图片描述

代码实现:

void* mn_memmove(void* p1, const void* p2, size_t n) {assert(p1);//判断是否为NULLassert(p2);if (p1 <= p2 || (char*)p1 >= (char*)p2 + n)//包含两种情况,直接按顺序拷贝{while (n) {*((char*)p1) = *((char*)p2);//将void*转化为char*(一字节)((char*)p1)++; //(char*)p1加加,字节加一((char*)p2)++;n--;}}else {//第三种情况 倒序拷贝p1 = (char*)p1 + n - 1;p2 = (char*)p2 + n - 1;while (n) {*((char*)p1) = *((char*)p2);((char*)p1)--;((char*)p2)--;n--;}}
}
int main() {int arr1[] = { 1,2,3,4,5,6,7,8,9,0 };mn_memmove(arr1+1, arr1, 3*sizeof(int));for (int i = 0; i < 10; i++) {//拷贝完打印printf("%d ", arr1[i]);}return 0;}

运行结果:
在这里插入图片描述

3. memset函数的使用

返回类型和参数

void * memset ( void * ptr, int value, size_t num );

1.memset是⽤来设置内存的,将内存中的值以字节为单位设置成想要的内容。
2. 头文件:#include<string.h>

使用:

int main() {char arr[] = "qwert";memset(arr, '0', 3 * sizeof(char));printf("%s", arr);return 0;
}

运行结果:
在这里插入图片描述

4. memcmp函数的使用

返回类型和参数:

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

1.比较从ptr1和ptr2指针指向的位置开始,向后的num个字节
2. 头文件:#include<string.h>

返回值:
在这里插入图片描述
使用:

int main() {char arr[] = "qwert";char arr1[] = "abcdf";if (memcmp(arr, arr1))printf("arr>arr1");elseprintf("arr1>arr");return 0;
}

运行结果:
在这里插入图片描述

以上就是我的分享了,如果有什么错误,欢迎在评论区留言。
最后,谢谢大家的观看!

http://www.hkea.cn/news/171803/

相关文章:

  • 刷会员网站怎么做外贸如何推广
  • 专做女装的网站网站备案是什么意思
  • 没有网站可以做seo排名吗小学生简短小新闻摘抄
  • 做程序网站需要什么代码宁波seo搜索排名优化
  • 网站建设开发语言新冠病毒最新消息
  • 怎么做1688网站网页制作工具有哪些
  • 一个网站的主题和设计风格最好用的免费建站平台
  • 网站开发主页手机优化游戏性能的软件
  • 怎么做属于自己的域名网站网络策划方案
  • destoon做的网站百度商务合作联系
  • 金山区网站制作网络营销策划书1500字
  • 厦门网站建设制作工具熊猫关键词挖掘工具
  • 徐州网站建设 网站推广百度首页快速排名系统
  • 在线转格式网站怎么做拼多多seo 优化软件
  • 成都理工疫情最新消息贵港seo
  • 网站如何防止攻击怎么自己做一个小程序
  • 企业网站建设英文百度收录
  • wordpress查版本sem和seo的区别
  • 网站设计说明书怎么写网站建设平台官网
  • 有建网站的软件阿里云域名注册万网
  • 站长工具排名分析怎么创建公司网站
  • 网站建设标书四川seo哪里有
  • 接网站开发做多少钱建一个外贸独立站大约多少钱
  • wordpress表单录入seo报告
  • python做网站显示表格星巴克seo网络推广
  • 一个com的网站多少钱管理微信软件
  • 蒙阴网站建设软文代写网
  • 用python做一旅游网站南昌seo计费管理
  • 湖北省建设厅win10优化软件哪个好
  • 湖南企业建站系统平台软文有哪些发布平台