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

做网站排名要多少钱关于建筑工程的网站

做网站排名要多少钱,关于建筑工程的网站,wordpress支持支付宝,怎么制作一个国外网站文章目录 1.memcpy使用和模拟实现2.memmove使用和模拟实现3.memset函数的使用4.memcmp函数的使用 memcpy#xff1a;内存拷贝 memmove#xff1a;内存移动 memset#xff1a;内存设置 memcmp#xff1a;内存比较 1.memcpy使用和模拟实现 memcpy#xff1a;内存拷贝 void… 文章目录 1.memcpy使用和模拟实现2.memmove使用和模拟实现3.memset函数的使用4.memcmp函数的使用 memcpy内存拷贝 memmove内存移动 memset内存设置 memcmp内存比较 1.memcpy使用和模拟实现 memcpy内存拷贝 void * memcpy ( void * destination, const void * source, size_t num );目标空间的地址 源空间的地址 被拷贝的字节个数 返回的是目标空间的起始地址 void*指针接收任意参数的地址函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 这个函数在遇到 ‘\0’ 的时候并不会停下来。 如果source和destination有任何的重叠复制的结果都是未定义的。 #include stdio.h #include assert.hvoid* my_memcpy(void* dest, const void* src, size_t num) {int i 0;void* ret dest;assert(src dest);while (num--) {*(char*)dest *(char*)src;dest (char*)dest 1;src (char*)src 1;}return ret; }int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[20] { 0 };//将arr1中的34567拷贝到arr2中my_memcpy(arr2, arr1 2, 20);int i 0;for (i 0; i 10; i){printf(%d , arr2[i]);}return 0; }打印 3 4 5 6 7 0 0 0 0 0注意对于重叠的内存交给memmove来处理。 重叠的意思就是 my_memcpy(arr1 2, arr1, 20);比如你想把arr数组里的某些数用arr数组的某些数替换这样会出问题。 例如: void* my_memcpy(void* dest, const void* src, size_t num) {int i 0;void* ret dest;assert(src dest);while (num--) {*(char*)dest *(char*)src;dest (char*)dest 1;src (char*)src 1;}return ret; }int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };//我们的想法是将arr1中的12345拷贝到arr1中原来34567的地方将原来的覆盖my_memcpy(arr1 2, arr1, 20);int i 0;for (i 0; i 10; i){printf(%d , arr1[i]);}return 0; }打印: 1 2 1 2 1 2 1 8 9 10打印这个玩意儿怎么和猜的不一样呢? 1 2 3 4 5 6 7 8 9 10程序里先把1替换了3 1 2 1 4 5 6 7 8 9 10然后2替换了4 1 2 1 2 5 6 7 8 9 10然后原来3位置的1替换了5 1 2 1 2 1 6 7 8 9 10然后原来4位置的2替换了6 1 2 1 2 1 2 7 8 9 10然后原来5位置的1替换了7 1 2 1 2 1 2 1 8 9 10memcpy函数不负责重叠内存的拷贝只负责不重叠的内存非要使用结果就是未定义的。 不过说是这么说有些时候memcpy也能实现重叠内存的拷贝。我们可以认为memcpy实现的拷贝不一定都对。所以重叠就用memmove函数。 memmove函数来处理重叠内存的拷贝。 2.memmove使用和模拟实现 memmove内存移动 void * memmove ( void * destination, const void * source, size_t num );和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。 如果源空间和目标空间出现重叠就得使用memmove函数处理。 #include string.hint main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };//将arr1中的12345拷贝到arr1中原来34567的地方将原来的覆盖memmove(arr1 2, arr1, 20);int i 0;for (i 0; i 10; i){printf(%d , arr1[i]);}return 0; }打印 1 2 1 2 3 4 5 8 9 10这个函数实际上就是实现src拷贝到dest。 如果是上面一种情况的话我们可以先把3给1然后把4给2然后把5给3…这样就可以实现重叠内存的处理。从前向后 如果是中间一种情况的话我们可以先把7给9然后把6给8然后把5给7…这样就可以实现重叠内存的处理。从后向前 如果是下面一种情况的话我们可以按顺序把3给8把4给9把5给10…这样就可以实现重叠内存的处理。从后向前 两个紫色竖线表示的位置分别为src的起始位置和结束位置。 这两根紫色竖线把情况分成了三种。 第一种情况是从前向后 第二种情况是从后向前 模拟实现: void* my_memmove(void* dest, const void* src, size_t num) {void* ret dest;assert(src dest);if (dest src) {while (num--) {*(char*)dest *(char*)src;dest (char*)dest 1;src (char*)src 1;}}else {while (num--) {*((char*)dest num) *((char*)src num);}}return ret; }int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };//将arr1中的12345拷贝到arr1中原来34567的地方将原来的覆盖my_memmove(arr1 2, arr1, 20);int i 0;for (i 0; i 10; i){printf(%d , arr1[i]);}return 0; }打印 1 2 1 2 3 4 5 8 9 103.memset函数的使用 memset内存设置 void * memset ( void * ptr, int value, size_t num );memset是用来设置内存的将内存中的值以字节为单位设置成想要的内容。 #include stdio.h #include string.h int main () {char str[] hello world;memset (str,x,6);printf(str);return 0; }打印: xxxxxxworld4.memcmp函数的使用 memcmp内存比较 int memcmp ( const void * ptr1, const void * ptr2, size_t num );比较从ptr1和ptr2指针指向的位置开始向后的num个字节 返回值如下 #include stdio.h #include string.h int main() {int arr1[] { 1,2,3,4,5 };//01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00int arr2[] { 1,2,3,6,5 };//01 00 00 00 02 00 00 00 03 00 00 00 06 00 00 00 05 00 00 00int ret memcmp(arr1, arr2, 12);printf(%d\n, ret);return 0; }打印 0因为前12个字节一样 #include stdio.h #include string.h int main() {int arr1[] { 1,2,3,4,5 };//01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00int arr2[] { 1,2,3,6,5 };//01 00 00 00 02 00 00 00 03 00 00 00 06 00 00 00 05 00 00 00int ret memcmp(arr1, arr2, 13);printf(%d\n, ret);return 0; }打印 -1因为第13个字节不一样
http://www.hkea.cn/news/14444720/

相关文章:

  • 学做视频的网站有哪些同一个网站买多家cdn
  • 网站检测报告哪里做中高端网站设计
  • 优秀企业门户网站建设新手建站教程报价单
  • 网站收录一键提交福建省住房和城乡建设网站
  • 网站建设图片上传常州做网站哪里好
  • 布吉网站建设公司宁夏自治区住房城乡建设厅网站
  • 注册域名不建设网站网页设计代写价格
  • 网站建设 目标浏阳做网站公司
  • 网站开发运营工程师待遇做淘宝需要知道什么网站
  • 常州网站建设公司市场佛山制作网页公司
  • 怎么做属于自己的音乐网站价格低性价比高的手机
  • 高端网站公司安卓app用什么软件编写
  • 六盘水网站设计企业形象通用网站
  • 网站代码 输入文字 跳出内容给医院做网站赚钱吗
  • 水果网站建设规划书网站开发 进度表
  • 海东营销网站建设公司网站建设技术优势
  • 建设网站招标文件二级域名怎么做网站
  • 乡村生态旅游网站建设方案在线编辑
  • 上海住远建设工程监理公司网站群晖wordpress插件
  • 3d云打印网站开发网站设计的尺寸
  • 北京网站建设签约免费好用的网站制作
  • 网站域名到期惠州市企业网站seo点击软件
  • 企业网站建设方式立即关注公众号
  • 给企业做网站的公司专业的外贸网站建设公司
  • 网站优化建设安徽发广告去哪个平台
  • 辽宁网站备案小型个人网站制作
  • 内部网站建设拓扑wordpress自适应手机端
  • 企业网站管理系统排名如何建设小网站
  • 什么软件能看网站?aso如何优化
  • 入门网站分析应该怎么做WordPress怎么去掉主题也没