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

宝安做棋牌网站建设哪家公司便宜jsp网站搭建

宝安做棋牌网站建设哪家公司便宜,jsp网站搭建,sem网站建设,wordpress构建小程序之前我们讲过一些字符串函数#xff08;http://t.csdnimg.cn/ZcvCo#xff09;#xff0c;今天我们来讲一讲几个内存函数#xff0c;那么可能有人要问了#xff0c;都有字符串函数了#xff0c;怎么又来个内存函数#xff0c;这不是一样的么#xff1f; 我们要知道之前… 之前我们讲过一些字符串函数http://t.csdnimg.cn/ZcvCo今天我们来讲一讲几个内存函数那么可能有人要问了都有字符串函数了怎么又来个内存函数这不是一样的么 我们要知道之前的字符串函数只能对字符串进行一系列操作很是局限这次的内存函数就不一样了内存函数的范围就很广了它可以对数组啊或者是结构体进行操作了。 memcpy函数 它是一个内存拷贝函数类似于字符串函数strcpy。 memcpy的头文件是string.h int main() {int arr1[10] { 0 };int arr2[] { 1,2,3,4,5 };memcpy(arr1, arr2, 20 );return 0; } 1、上面的例子就是两个数组传的也是整形所以就不能用strcpy所以就体现了memcpy的重要性和通用性。 2、这个num一定要注意是字节的大小所以上面的例子传了5个整数int所以字节大小就是20。  那么我们该如何对他进行模拟实现呢 void* my_memcpy(void* dest,void* src,size_t sz) {assert(dest src);void* ret destwhile (sz--) {*(char*)dest *(char*)src;dest (char*)dest1;src (char*)src 1;}return ret; }int main() {int arr1[10] { 0 };int arr2[] { 1,2,3,4,5 };my_memcpy(arr1, arr2, 20 );return 0; } 这里我们进行了一个模拟实现 1、首先我们因为要考虑传的参数都可能不同所以为了通用性我们这里用void*来接受各种类型的指针。 2、其次当进行拷贝的时候由于是一个字节一个字节进行的所以我们只能转换成char*来进行交换。 3、交换完之后我们还需要将dest和src进行后移移动到下一个字节待交换因为强制类型转换是临时性的所以这里在进行移动的时候还需要进行一次强制类型转换。 4、sz是总字节大小所以用做循环的变量来控制循环。 memmove函数  刚刚的memcpy函数是用来进行两个之间的拷贝那么这个memove函数是用来进行同一个内存块的拷贝。 int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };memmove(arr2, arr, 12 );return 0; }  思考memmove的模拟实现 但是这个思路到底能否实现呢  那么只是用从后向前拷贝就可以解决所有问题么  所以这个我们就要进行分类讨论了    可以看到上面这个图我们可以看到最后通过我们的分析可以知道我们当destsrc时要进行从前向后拷贝destsrc时要进行从后向前拷贝。 那么我们来实现一下代码 void* my_memmove(void* dest, void* src, size_t sz) {assert(dest src);void* ret dest;while (sz--) {if (dest src) {*(char*)dest *(char*)src;dest (char*)dest 1;src (char*)src 1;}else {*((char*)dest sz) *((char*)src sz);}}return ret; } int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };my_memmove(arr2, arr, 12 );return 0; } 我们用while循环sz为循环变量当destsrc的时候我们就将其正常拷贝就可以了 否则的话我们用dest和src分别加sz就到了数组的后面然后随着sz的递减我们就实现了从后向前拷贝。 memset函数 这个函数可以将内存块进行指定更改例如 我们可以看到arr代表首元素地址所以从数组第一个1开始向后的12个字节也就是3个int整形所以我们看到内存里面的前三个被替换成了0。 另外也可以替换字符串 int main() {char arr[] { Hello world };memset(arr6 ,x, 3);printf(%s, arr);return 0; }  我们可以替换字符串就像这样 但是当用这个函数的时候有一个点 int main() {int arr[] { 1,2,3,4,5,6 };memset(arr1 ,1, 8);return 0; }  这个函数我们想要把23也都变成1但是我们运行结果却不是 我们发现并不是更改成了1当我们用16进制看的时候会发现 它是将每一个字节都更改成了1所以导致最后的值很大。  memcmp函数 可以看到由于memcmp是按照字节比较的所以当我们取前三个元素的字节时arr1和arr2都是一样的所以输出结果就是0。 但是当我改成 07比04大所以arr2大于arr1返回的是小于0的值。  感谢大家的观看我们下次再见
http://www.pierceye.com/news/784049/

相关文章:

  • 网站信息化建设报送电商网站 设计
  • 写作网站哪个好用有没有必要给企业做网站
  • 长沙cms建站模板设计说明英文翻译
  • 做的差的网站河北网站制作公司地址
  • 网站的推广有哪些方式AWS免费套餐做网站可以吗
  • 如何建设公司网站 需要注意什么iis搭建多个网站
  • 青海住房与建设厅网站本地门户网站源码
  • 自己做付费网站网站版式有哪几种
  • 商丘市做1企业网站的公司贵阳网站建设是什么
  • 如何制作动漫网站模板下载定制网站制作广州
  • 西安网站策划我做的网站不知道网站怎么办啊
  • 商务类网站设计成都网站设计建设推荐
  • 网站建设浏览器不兼容阳信做网站
  • 站酷设计网站官网网址网站多国语言
  • 网站建设经费保障中国域名网官网
  • 网站备案如何查询在wordpress教程
  • 新准则中公司网站建设费用计入什么科目360网页入口
  • 公司要网站建设thinkphp商城源码
  • 网站的定义tomcat做公司网站
  • 小程序开发公司网站源码下载阿里云搭建公司网站
  • 网站营销方案设计公司凡科可以做视频网站吗
  • 网站seo优化费用wordpress 做商城
  • 宁波网站设计哪家公司好电子商务电商网站设计
  • 网站添加提醒租网站需要多少钱
  • 网站关键字优化地点如何用手机做网站吗
  • 中国建设银行网站签名通下载站长工具seo词语排名
  • 七牛云官网登录郑州优化网站收费标准
  • 三亚专业网站建设电商网站开发思路
  • app手机端电子商务网站功能提供网站建设课程
  • 福田皇岗社区做网站公司办公室布局效果图