前言
本篇博客就来介绍下关于C语言常用的内存函数之memmove()函数。
????memmove() - 内存拷贝可重叠????
memmove()指定头文件是:#include<string.h>
实际上memmove()函数和memcpy()函数的用法是一样的,但是既然是不同的函数还是具有不同之处的:↓
- memmove()函数是可以处理内存重叠的情况的。
- memcpy()函数应该可以拷贝的是不重叠内存的情况的。
- 在这里重叠的意思实际上就是数组名相同的。
memmove() 函数的声明方式如下 ????
在这里我们可以发现是和memcpy()是一样的。
参数讲解:↓
- str1 → 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
- str2 → 指向要复制的数据源,类型强制转换为 void* 指针。
- n → 要被复制的字节数。
返回值→该函数返回一个指向目标存储区 str1 的指针。
????memmove()代码示例????
用同一个数组名进行内存拷贝。
示例代码如下 ↓
运行结果 ↓
1 2 1 2 3 4 5 8 9 10
????注意:在这里如果你用memcpy()函数的话是不可以的。其实这个就是memcpy()函数和memmove()函数的区别所在了。
????创建自定义函数实现memmove()????
示例代码如下 ????
先来看看 str1 > str2 的调试结果↓
编辑
再来看看 str2 < str1 的调试结果↓ 把上述代码的这段修改下即可。
不知道你学会了没有????建议没有学会反复观看✨