memcpy、memmove、memset、memcmp

这四个内存操作函数都是以字节为单位来作用的。由于参数为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一样:

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值