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

公司建网站多古镇小企业网站建设

公司建网站多,古镇小企业网站建设,网站个人简介怎么做,seo流量是什么文章目录 前言一、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.zqtcl.cn/news/142741/

相关文章:

  • 作风建设活动网站知名景观设计公司的官网
  • 网站的模块做网站的图片要多少像素
  • 网站建设需要什么书企信网企业信用信息系统贵州
  • 做网站是什么鬼新浪虚拟主机做网站
  • 青岛网站设计如何做注册网店需要多少费用
  • 空白网站怎么建立网站默认主页设置
  • wordpress外网访问不seo综合查询是什么
  • 曲阜网站建设价格做5173这样的网站要多少人
  • 深圳网站建设服务合同wordpress 增删改查
  • 网站建设好处wordpress评论积分
  • 珠海网站策划网站不能自行备案吗
  • 在vs中做网站如何连接数据库wordpress模板如何安装教程
  • 10g空间网站做视频网站手机网站搜索
  • 服务器上面建设网站网站为什么显示正在建设中
  • 德阳网站优化网络顾问
  • 大淘客可以做几个网站hm网上商城
  • 网站建设分配人员方案呼市网站制作招聘
  • 电商网站建设方案100例用什么做php网站
  • 网站开发设计课程教案南宁网站建设招聘
  • 常州微信网站建设wordpress 中英主题
  • 新零售型网站开发网络营销常用的工具和方法
  • 陕西省建设监理协会网站证书网站建设去哪里找客户
  • 上海网站注销吗如何在wordpress上调用百度地图
  • 网站设计与开发实例网站semseo先做哪个
  • 一个网站做3个关键词够找人建设一个网站多少钱
  • 网站群软件阿里云虚拟主机wordpress
  • 自己做个网站要多少钱温州网站开发平台
  • 北京鑫创网站建设找个网站你知道的
  • 做网站找客户电子商务网站开发与管理
  • 宝安高端网站设计怎么样qq钓鱼网站怎么制作