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

怎样在淘宝网做网站专业的深圳app定制开发

怎样在淘宝网做网站,专业的深圳app定制开发,郑州seo排名扣费,怎么查网站接入商strcpy拷贝的仅仅是字符串#xff0c;但是内存中的数据不仅仅是字符#xff0c;所以就有了memcpy函数 1. memcpy void *memcpy #xff08;void * destination #xff0c;const void * source , size_t num) 函数memcpy从source的位置开始向后拷贝num个字节的数据到desti… strcpy拷贝的仅仅是字符串但是内存中的数据不仅仅是字符所以就有了memcpy函数 1. memcpy void *memcpy void * destination const void * source , size_t num) 函数memcpy从source的位置开始向后拷贝num个字节的数据到destination的内存位置 #includestring.h int main() {int arr1[10] { 0 };int arr2[] { 1,2,3,4,5 };//把arr2中的前5个整形的数据拷贝放到arr1中memcpy(arr1, arr2, 20);return 0; } 可以看到前5个整形都拷贝过来了  memcpy函数的模拟实现 1一个字节一个字节的拷贝destsrc转为char * eg如果拷贝7个字节两个int *类型指针不能操作 2char *dest不能这样写因为的优先级高于强制类型转换 相当于先对原类型进行再进行进行强转 前置char *)dest虽然C语言中可以但是改为c就不能运行所以还是正常写1 #includestring.h #includeassert.h void* my_memcpy(void* dest, const void* src, size_t sz) {void * retdest;assert(dest src);while (sz--){*(char*)dest *(char*)src;dest (char*)dest 1;src (char*)src 1;}return ret; } 一个数组arr{12345678910}如果想在自身的基础上进行拷贝即把12345拷贝到34567的位置上想得到结果12123458910 但是得到的结果却是1 2 1 2 1 2 1 8 9 10 我们就发现不重叠内存的拷贝可以使用memcpy 重叠内存的拷贝使用memmove函数 上面其实是标准规定但是实际在VS2022这个环境中memcpy也能实现重叠内存的拷贝 其他平台不一定 #includestdio.h #includestring.h #includeassert.h void* my_memcpy(void* dest, const void* src, size_t sz) {assert(dest src);while (sz--){*(char*)dest *(char*)src;dest (char*)dest 1;//这里不能写成char*dest强制类型转化是临时的的时候dest并不一定是char*类型的src (char*)src 1;} } int main() {int arr[] { 1,2,3,4,5,6,7,8,9,10 };my_memcpy(arr 2, arr, 20);for (int i 0; i 10; i){printf(%d , arr[i]);}return 0; } 2. memmove void *memmovevoid * destination const void * source , size_t num) 参数和memcpy一样但是memmove可以实现重叠内存的拷贝 memmove函数的模拟实现 这里不考虑直接开辟一个相同的空间再进行拷贝元素 讨论 destsrc:只能从前向后拷贝 destsrc:只能从后向前拷贝 dest和src不相干的时候从后往前或者从前往后都可以 #includestdio.h #includeassert.h void* my_memmove(void* dest, const void* src, size_t sz) {void* ret dest;assert(dest src);if (dest src){//前-后while (sz--){*(char*)dest *(char*)src;dest (char*)dest1;src (char*)src1;}}else{//后-前while (sz--){*((char*)dest sz) *((char*)src sz);}}return ret; } int main() {int arr[20] { 1,2,3,4,5,6,7,8,9,10 };my_memmove(arr , arr2, 20);for (int i 0; i 10; i){printf(%d , arr[i]);}return 0; } 3. memcmp int memcmp ( const void * ptr1,const void *( ptr2  ,  size_t num ) 类似strcmp函数memcmp是一对字节一对字节进行比较比较num个字节ACSII值 1返回值 如果返回值 0则表示 str1 小于 str2如果返回值 0则表示 str1 大于 str2如果返回值 0则表示 str1 等于 str2 #includestdio.h #includestring.h int main() {int arr1[] { 1,2,3,4,5,6,7 };//01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00int arr2[] { 1,2,3,0x11223304 };//01 00 00 00 02 00 00 00 03 00 00 00 04 33 22 11 int ret memcmp(arr1, arr2, 13);printf(%d\n, ret); } 上面这个代码虽然arr1的元素多但是比较前13个字节的大小都一样那么ret0 4. memset void *memset( void *dest, int c, size_t count )  复制字符c一个无符号字符到参数str所指向的字符串的前n个字符 初始化前count个字节为c 是以字节为单位设置内存的 eg1:将hello world中的wor改为xxx #includestdio.h #includestring.h int main() {char arr[] hell0 world;memset(arr 6, x, 3);printf(%s\n, arr);return 0; } eg2 思考这个代码将arr改为了啥 #includestdio.h #includestring.h int main() {int arr[10] { 0 };memset(arr, 1, 40);return 0; } 每一个int类型的元素的每一个字节都改为了1 所以想把数组每一个元素都初始化为1用memset函数是不可能实现的 但是可以都初始化为0 本次内容就到此啦欢迎评论区或者私信交流觉得笔者写的还可以或者自己有些许收获的麻烦铁汁们动动小手给俺来个一键三连万分感谢 !
http://www.w-s-a.com/news/2987293/

相关文章:

  • 昆明网站建设企业网站建设首选玖艺建站信得过
  • 那个网站做拍手比较好自定义标签wordpress
  • 成都专业做网站的公司有哪些潍坊模板建站定制网站
  • 用seo对网站做分析企业邮箱注册登录入口
  • 长宁网站制作营销案例100例小故事
  • 易语言对做网站有什么帮助家装设计网站开发
  • 长沙住房建设部网站网站是怎么做新手引导
  • PHP网站开发实例教程电子书电商网站建设 教学总结
  • 郴州网站建设服务网上青年团智慧团建登录
  • 学做php网站抖音广告推广
  • 门户网站建设工作没有公司做网站犯法吗
  • 巢湖路桥建设集团有限公司网站rp网站自动跳转图片怎么做
  • 网站制作定制图东莞公共资源交易中心
  • 网页设计制作网站模板免费WordPress目录加密
  • 怎么样用dw做网站新冠疫苗接种查询
  • 网站 免备案百度 wordpress
  • 网页设计感十足的网站遵义网站建设oadmin
  • 网站建设宣传河北省住房与城乡建设厅网站
  • 上海营销型网站自己做网络推广怎么做
  • 银川网站设计公司零基础免费学编程app
  • 昆山网站建设推广杭州手机网站开发
  • 做游戏直播那个网站个人制作网站多少钱
  • 西宁建设公司网站成都十大景观设计公司
  • 学做室内效果图的网站网站优化做网站优化
  • 网站建设需要用到的软件网易云音乐网站开发介绍
  • wordpress vipseo搜索引擎优化工资多少钱
  • 织梦网站栏目网站开发设计框图
  • 实时网站推广的最终目的是宁夏建设职业技术学院官方网站
  • 可以申请免费的个人网站吗阿里云建站售前咨询
  • 网站开发怎么人员组织深圳网站开发建设培训