memcpy、memmove、memset、memcmp

本文介绍了C语言中的四个内存操作函数:memcpy、memmove、memset和memcmp,它们用于字节级别的数据复制、移动、填充和比较,详细解释了函数的功能、使用场景及注意事项,如处理内存重叠的情况。
摘要由CSDN通过智能技术生成

这四个内存操作函数都是以字节为单位来作用的。由于参数为void*,所以也可以操作int型、浮点型等数组,需要头文件#include<string.h>

memcpy

void* memcpy (void* start1, const void* start2, size_t num):此函数用于将从str2 开始后num个字节的内容覆盖到以str1起点的后面的num个内存块,该函数遇到'\0'不会停下来,返回值是start1最初的位置。若str2后面的num个内存同str1后面有重叠,此时将会产生未定义的结果。

 

memmove 

void* memmove(void* start1, const void* start2, size_t num):该函数功能同memcpy ,用于将从str2 开始后num个字节的内容覆盖到以str1起点的后面的num个内存块,该函数遇到'\0'不会停下来,返回值是start1最初的位置。但遇到内存重叠仍然能够进行理想覆盖,上面的例子最后的结果将会是:

memset 

 void memset(void* str, int data, size_t num):该函数用于将以str为起点的后面的num个字节的内容修改为data,返回值是str最初的位置。

memcmp 

int memcmp(const void* str1, const void* str2, size_t num):该函数类似于strcnmp,但比较的是分别以str1、str2为起点的后面的num个字节的内容,返回值内容同strncmp一样:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值