1. memset
- 原型:void* memset(void *s,int c,size_t n)
- 功能:将s的前n个字节用c替换并返回s
- 注意:memset赋值不管你数组是什么类型的,它都是以字节为单位赋值的。即使是int型,4个字节,也是逐个字节赋值。
2. memcpy 和 memmove
- 原型:
void *memcpy(void*dest, const void *src, size_t n)
void *memmove(void *dest, const void *src, size_t n) - 功能:均是将由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。并返回一个指向dest的指针。
- 与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节。
- memcpy如果两个数组重叠,不定义该函数的行为。而用memmove如果两数组重叠,赋值仍能正确进行。也就是说memmove保证拷贝的结果是正确的,memcpy不保证拷贝的结果的正确。
- 因此,memcpy的效率会比memmove高一些。
3. memcmp
- 原型:int memcmp(const void *str1, const void *str2, size_t n)
- 功能:比较str1和str2的前n个字节。
- 返回值:
如果返回值 < 0,则表示 str1 小于 str2。
如果返回值 > 0,则表示 str2 小于 str1。
如果返回值 = 0,则表示 str1 等于 str2。