一.内存函数总览
1.内存函数的头文件
#include<string.h>
二.memcpy(内存拷贝函数)
特性:限制字节数,不限制类型
应用场景:
1.memcpy的模拟实现
2.情景1:自己拷贝自己的一部分
PS:若不想分类讨论,直接用memmove函数
分析:有两种情形
- 目标区域在前面,从源区域前往后拷贝
- 目标区域在后面,从源区域后往前拷贝
原理:保证重合的部分,能够优先从该方向上拷贝出来
原理图示:
直接情况分类:
代码展示:
三.memmove(处理重叠内存的内存拷贝函数)
特点:memmove不用像memcpy一样考虑源区域头地址与目标区域头地址的位置关系
四.memcmp(内存比较函数)
memcmp的返回值:
使用场景:
1.比较memcmp和strcmp
strcmp限定了字符指针类型(char*),而memcmp不限定类型(void*)
五.memset(内存设置函数)
PS:value为设置的值,num为修改的前num个字符个数(字节个数)
num的赋值规则:
- 要将参数化为二进制填入
使用场景:
PS:一个int数组,一个元素有4个字节;
这里修改8个字节/9个字节,均将该元素改为0。