内存函数
导读
大家好,很高兴又和大家见面啦!!!
在C语言标准库中,有一些直接对内存进行操作的函数,我们将其称之为内存函数,这些函数位于头文件<string.h>
,在网站https://cplusplus.com/reference/cstring/中我们可以看到这些函数:
从函数的介绍中,我们可以看到这些函数主要是用于进行拷贝、比较、查找以及设置的功能。
在今天的内容中我们将会介绍如何使用这些内存函数,以及这些内存函数我们应该如何实现。接下来就让我们进入今天的内容吧!!!
一、内存拷贝函数—memcpy
首先我们要介绍的第一个函数是内存拷贝函数——memcpy
,我们先来看一下这个函数的介绍:
1.1 函数介绍
从函数介绍中我们可以获取一下信息:
memcpy
这个函数是用来进行内存拷贝的函数;- 函数有三个参数:第一个参数为拷贝的目的地地址,第二个参数为拷贝的源对象的地址,第三个参数为拷贝的空间大小,单位为字节。
- 在拷贝的过程中,函数不会受终止符的影响,只会根据字节数量
num
来进行精确的拷贝; - 在拷贝前需要注意,目的地的空间大小和源对象的空间大小都应该至少是
num
个字节,并且拷贝的目标空间与源空间不能有重叠。
通过函数的介绍,我们现在对memcpy
有了一个初步的了解,那么接下来,我们就来探讨一下该函数的使用方式;
1.2 函数的使用
从函数的原型我们不难看出,函数在使用时只需要将拷贝的目标地址、源地址以及拷贝的字节数这三个信息依次传入函数即可,由于函数的返回类型是void*
,那我们是不需要通过变量来对函数的返回值进行接收的,因此函数的使用比较简单,只需要准备好3个参数即可,如下所示:
memcpy(dist,src,num);
函数的初步使用方式我们已经知道了,接下来我们就需要来对函数进行更加深入的探讨了。
1.2.1 memcpy
与strncpy
从函数的原型与函数的功能可以看到memcpy
这个函数和strncpy
有点像,但是它要比strncpy
更加完善,如下所示:
从测试中我们可以看到,在拷贝的过程中,当strncpy
在进行复制时,如果遇到了