前言
本文仅是对常见一点的内存函数进行通俗化解释和相关注意点的提醒,函数的具体使用演示可通过下方链接自行学习: C语言库函数查找
memcpy函数
内存函数的优点:内存函数可以适用于处理任意类型的数据。
memcpy函数:不重叠的两块内存空间的拷贝,从源空间复制num个字节的数据到目标空间。
void* memcpy( void* destination, const void* source, size_t num );
参数:第一个参数传目标空间变量,第二个参数传源空间变量,第三个参数传要拷贝数据的字节数。
返回值:返回目标空间变量,适使用情景决定用什么类型的指针来接收数据。
【注】:memcpy函数在遇到 ‘\0’ 的时候并不会停下来。
memmove函数
memmove函数:不重叠和重叠的内存空间都可以拷贝,其余与memcpy函数完全一样,传的参数都一样。
void* memmove( void* destination, const void* source, size_t num );
【注】:和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。
memcmp函数
memcmp函数:内存比较函数,从前往后依次比较从ptr1和ptr2指针开始的num个字节。
int memcmp( const void* ptr1, const void* ptr2, size_t num );
参数:第一个参数传目标空间变量,第二个参数传源空间变量,第三个参数传要比较的数据的字节数。
返回值:
若 ptr1 > ptr2,返回 大于0 的整数
若 ptr1 = ptr2,返回 0
若 ptr1 < ptr2,返回 小于0 的整数
memset函数
memset函数:以字节为单位设置内存中数据。
void* memset( void* ptr, int value, size_t num );
参数:第一个参数传的要设置的那块内存的首地址,第二个参数传的是内存中每个字节要设置的值,第三个参数传的是要设置的字节数量。
返回值:返回 ptr(该空间的首地址)。