一,引言
首先关于这四个详细的用法见--cplusplus.com/doc/tutorial/--里面详细介绍了其用法。
二,memcpy函数
函数原型:
1,该函数的返回值是void的类型的指针。
2,一共有三个参数,第一个是想要拷贝到的地方的地址,第二个是要拷贝数据的地址,第三个是需要拷贝的大小,注意单位是字节。
3,其函数用法就是该函数从source向后num个字节拷贝到destination的后面。
4,这个函数遇到\0也不会停下。
举个例子:
这个没有进行memcpy函数的的数据。
这是执行memcpy函数的数据。
需要注意的是num的单位是字节。
5,memcpy的模拟实现。
当遇到重叠内存的的情况--memmove函数。
二,memmove函数
1,函数原型。
用法和memmove基本相同。
其差异主要在于两点
1,和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。
2,如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。
举个例子
调用前的arr1数组
调用后的arr1数组
由此对比这个函数作用于相同的内存空间。
3,memmove函数的模拟实现
三,memset函数
函数原型
其作用是将指定内存的一段空间修改成想要的数值,
1,ptr 指定空间的地址
2,value 想要改变的数值
3,改变空间的大小
举个例子
调用前的str数组
调用后的str数组
四,memcmp函数
函数原型
返回的类型是整形
当第一个ptr1小于ptr2时,返回一个小于0的数。
当第一个ptr1大于ptr2时,返回一个大于0的数。
当第一个ptr1等于ptr2时,返回0。
用法:比较从ptr1和ptr2向后num个字节的大小。
举个例子
因为第一个数组大于第二个数组所以说返回了一个大于0的值。