【C】内存函数——知识点大全(精炼,全面,基础)

 前言:大家好,这里是YY;此篇博客主要是内存函数的知识点包含【memcpy】【memmove】【memcmp】【memset

PS:创作不易,每个知识点都有例题或者图帮助理解;如果对你有帮助,希望能够得到 您的关注,赞,收藏,谢谢!  

目录

一.内存函数总览

1.内存函数的头文件

二.memcpy(内存拷贝函数)

1.memcpy的模拟实现

2.情景1:自己拷贝自己的一部分

三.memmove(处理重叠内存的内存拷贝函数)

四.memcmp(内存比较函数)

1.比较memcmp和strcmp

扫描二维码关注公众号,回复: 15207583 查看本文章

五.memset(内存设置函数)


一.内存函数总览

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。

猜你喜欢

转载自blog.csdn.net/YYDsis/article/details/130448790