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

辽宁省建设银行e护航网站广东网站制作哪家强

辽宁省建设银行e护航网站,广东网站制作哪家强,网站中文章内图片做超链接,网站怎样做收录会更好文章目录 前言一、memcpy函数#xff08;内存拷贝函数#xff09;二、memmove重叠拷贝函数三.memset内存设置函数四.memcmp内存比较函数总结 前言 我们之前按学习了C语言标准库中提供了一系列的字符和字符串库函数#xff0c;接下来我们就学习一下关于内存相关的一些函数。… 文章目录 前言一、memcpy函数内存拷贝函数二、memmove重叠拷贝函数三.memset内存设置函数四.memcmp内存比较函数总结 前言 我们之前按学习了C语言标准库中提供了一系列的字符和字符串库函数接下来我们就学习一下关于内存相关的一些函数。 一.memcpy函数内存拷贝函数 void * memcpy ( void * destination, const void * source, size_t num ); 1.1使用 destination这个是目地source这个是源头size_t num这个是内存大小的字节单位 int main() {int arr1[] { 1,2,3,4,5 };int arr2[] { 0 };memcpy(arr2, arr1, 20);return 0; } 负责拷贝两块独立空间中的数据 如果你想要重叠拷贝的话则请使用memmove 1.2模拟实现 void* my_memcpy(void* dest, const void* src, size_t num) {assert(dest src);void* ret dest;while (num--){*(char*)dest *(char*)src;dest*(char*)dest 1;src*(char*)src 1;}return ret;}代码写完很多人会有疑问为什么要这样子去做char为什么要这样子的指针去强制类型转换是因为这个代码它可以用于任意类型的内存数据所以说他其实并不知道你传进来的数据是哪种类型的我们之前的例子是一个整形你不能用一个整形去做他万一是长整形短整型怎么办呢所以我们要想到一个能解决所有类型的方法那就是把它强制转换成字符新的指针因为一个字符类型他就等于一个字节所以说你每1就等于一个字节每不管哪个类型都可以把它变成一个字节一个字节的走。 把这个数据类型都可以分成这样所以就解决了。 二.memmove重叠拷贝函数 void * memmove ( void * destination, const void * source, size_t num ); 和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。如果源空间和目标空间出现重叠就得使用memmove函数处理。 2.1使用 int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };memmove(arr1 2, arr1, 20);int i 0;for (i 0; i 10; i){printf(%d , arr1[i]);}return 0; } 2.2模拟实现 这个的模拟实现就比较难了有时候需要从前往后处理有时候又需要从后往前处理所以我们必须来画一个图来思考 当dest的地址小于src的地址我们是从前往后拷还是从后往前拷呢我们可以从图像得出如果我们从后往前拷的话就会覆盖还未考虑的数据所以只能从前往后拷。 同理当dest的地址大于src的时候只能从后往前拷 void* my_memmove(void* dest, const void* src, size_t num) {//assert(dest src);//从前向后拷贝void* ret dest;if (dest src){while (num--){*(char*)src *(char*)dest;dest *(char*)dest 1;src*(char*)src 1;}}//从后向前拷贝else{while (num--){//先找到最后一个数据通过num--不断向前拷贝*((char*)destnum) *((char*)srcnum);}}return ret;} 三.memset内存设置函数 void * memset ( void * ptr, int value, size_t num ); memset是用来设置内存的将内存中的值以字节为单位设置成想要的内容 使用 int main() {char str[] hello world;memset(str, x, 6);printf(str);return 0; }四.memcmp内存比较函数 int memcmp ( const void * ptr1, const void * ptr2, size_t num ); 是按字节数去比较如果在之前就比完了后面就不需要再比了如果源头大于目的返回一个小于0的数 int main() {int arr1[] { 1,2,3,4 };int arr2[] { 1,2,3,5 };int ret memcmp(arr1, arr2, 15);printf(%d, ret);return 0; } 返回-1 总结 熟练的掌握这一系列的库函数可以在做某些题目上省去大量的时间如果你不做题目掌握这些函数也可以增加你阅读别人函数的经验看得懂别人的代码
http://www.w-s-a.com/news/9572/

相关文章:

  • wordpress最底部网站优化怎么弄
  • 二手市场网站建设的目的长沙ui设计公司
  • 微信公众号做留言网站wordpress详情页选择模板
  • php网站开发面向对象教程如何做分享赚钱的网站
  • 山东网站建设最便宜常州网站建站公司
  • 网站地图 seo中国建设招标网是私人网站吗
  • 高中作文网站全网营销有哪些平台
  • 网站构建建设制作平台上海搬家公司收费价目表
  • 成功案例展示网站做网站赚多少钱
  • 建设银行网站用什么字体网站建站后维护需要做哪些
  • 有哪些做平面设计好素材网站有哪些开网站建设
  • 国际交流网站平台有哪些筑建网
  • 网站程序是如何开发的江门市住房建设管理局网站
  • 网站建设一般需要几个步骤昵图网免费素材
  • 个人网站建设需求说明书微信域名防封在线生成
  • 专业网站建设的公司wordpress后台没有模板
  • 哈尔滨网站运营服务商制作外贸网站公司
  • 个人网站需要备案宁波网站推广工具
  • 苏州建设银行网站首页wordpress修改密码
  • 网站建设员工技能要求网站制作简单协议
  • 没有ipc备案的网站wordpress isux主题
  • 清远做网站电子商务网站建设需要的语言及特点6
  • 万州那家做网站c语言基础知识入门
  • 齐河网站建设公司价格网站建设包括什么
  • 论坛网站开发费用怎么把文件放到网站的根目录
  • 海南省零售户电商网站官渡区住房和城乡建设局网站
  • 怎么找淘宝客网站最新军事战况
  • 缺乏门户网站建设网页设计与制作项目教程第二版
  • 手机网站横竖屏一般做建设的是什么公司
  • 免费网站建设无广告网站开发 华景新城