C语言内存函数--memcpy--memmove--memset--memcmp

本文详细介绍了C++中的四个重要内存操作函数:memcpy用于字节拷贝,memmove处理重叠内存,memset设置内存值,memcmp用于字节比较。通过实例演示了它们的用法和区别。
摘要由CSDN通过智能技术生成

一,引言

首先关于这四个详细的用法见--cplusplus.com/doc/tutorial/--里面详细介绍了其用法。

二,memcpy函数

函数原型:

1,该函数的返回值是void的类型的指针。

2,一共有三个参数,第一个是想要拷贝到的地方的地址,第二个是要拷贝数据的地址,第三个是需要拷贝的大小,注意单位是字节。

3,其函数用法就是该函数从source向后num个字节拷贝到destination的后面。

4,这个函数遇到\0也不会停下。

举个例子:

这个没有进行memcpy函数的的数据。

这是执行memcpy函数的数据。

需要注意的是num的单位是字节。

5,memcpy的模拟实现。

当遇到重叠内存的的情况--memmove函数。

二,memmove函数

1,函数原型。

用法和memmove基本相同。

其差异主要在于两点

1,和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。

2,如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。

举个例子

调用前的arr1数组

调用后的arr1数组

由此对比这个函数作用于相同的内存空间。

3,memmove函数的模拟实现

三,memset函数

函数原型

其作用是将指定内存的一段空间修改成想要的数值,

1,ptr 指定空间的地址

2,value 想要改变的数值

3,改变空间的大小

举个例子

调用前的str数组

调用后的str数组


四,memcmp函数

函数原型

返回的类型是整形

当第一个ptr1小于ptr2时,返回一个小于0的数。

当第一个ptr1大于ptr2时,返回一个大于0的数。

当第一个ptr1等于ptr2时,返回0。

用法:比较从ptr1和ptr2向后num个字节的大小。

举个例子

因为第一个数组大于第二个数组所以说返回了一个大于0的值。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值