字符串处理函数库中的内存处理函数

memcpy

函数原型
void *memcpy(void *s1, const void *s2, size_t n);
函数说明:将s2所指向的对象中的n个字符复制到s1所指对象中。返回指向结果对象的指针。

memmove

函数原型
void *memmove(void *s1, const void *s2, size_t n);
函数说明:从s2所指向的对象中复制n个字符到s1所指向的对象中。复制过程就好比是s2所指向的对象中的n个字符先被复制到一个临时数组中,然后再从这个临时数组复制到s1所指向的对象中。返回指向结果对象的指针。

memcmp

函数原型
int *memcmp(const void *s1, const void *s2, size_t n);
函数说明:比较s1所指对象和s2所指对象中的前n个字符。如果s1等于、小于或大于s2,则返回0、小于0或大于0的值。

memchr

函数原型
void *memchr(const void *s, int c, size_t n);
函数说明:在s所指向的对象的前n个字符中,确定c(被转换成无符号字符)首次出现的位置。若找到了c,则函数返回指向对象中c的指针,否则返回NULL。

memset

函数原型
void *memset(void *s, int c, size_t n);
函数说明:将c(被转换成无符号字符)复制到s所指向的对象的前n个字符中。返回指向结果对象的指针。

这些函数的指针形参统统被声明为void*类型,这样它们就可以用于操作任意数据类型的内存块。任何指针都可以直接赋值给类型为void*的指针变量,同时void*类型的指针也可以直接赋值给指向任意数据类型的指针变量。由于不能对void*类型的指针变量进行解引用,所以每个函数都要接收一个规模(size)实参来指定函数将要处理的字符数。

原文地址:https://www.cnblogs.com/jie828/p/11187188.html