类字符串函数---内存函数的使用以及模拟实现(下)
目录
一、前言
前面我们已经讲了memcpy和memset函数的使用,相信小伙伴们对这两个函数已经
非常熟悉了,(如果还不是很熟悉,可以看看上篇)那么我们现在要学习另外两个函数
memmove和memcmp。
本章内容memmove和memcmp函数
二、 memmove和memcmp函数
1.memmove函数(内存移动)
函数参数形式:void*memmove(void*destination,const void*source,size_t num);
其中num是无符号的整数,单位是字节。memcpy函数不能实现重复部分的拷贝,
如在同一个数组中无法实现,但是memmove可以实现重复内存拷贝。也可以说
memcpy是memmove的子集。
函数的使用:
memmove函数的模拟实现
2、memcmp函数(内存比较)
memcpy函数参数形式int memcmp(const void *str1,const void* str2,size_t num);
这个函数的返回类型是int ,nu单位是字节(一个int 4字节),str1大于str2返回一个
大于0的数,str1小于str2则返回一个小于0的数,等于则返回0。
注意:本电脑是小端存储模式(以后会讲),简单的说就是高位存高地址,大端则相反如1为
00000001,小端模式下为01000000。
简单的说一下:如图
所以说在整形数组比较非一个整数的字节大小端就有区别了
在小端中:
结果是一个小于0的数,vs编辑器默认是-1,原因在于前面20个字节相同,但是第21个字节,
如图:
所以arr1小于arr2,返回小于0的数,如果是大端就不一样了,这里就不说那么多了,下次会涉及。
这期结束了,兄弟们一键三连
- 点赞
- 收藏
- 关注作者


评论(0)