内存拷贝其实就是将一个内存中的值复制到一个内存中,这两个内存块可以相同可以不同
简单的内存拷贝如char a='q',b;b=a;这也是一种内存拷贝,只不过没有用到函数
在主函数传值给形参时也用到内存拷贝,如调用函数中int a=5,b=3;fun(a,b);被调函数中int fun(int a,int b);
还有一些内存拷贝函数如下:
原型:extern char *strcpy(char *dest,char *src);
用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include <string.h> 功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
原型:extern void *memmove(void *dest, const void *src, unsigned int count);
用法:#include <string.h> 功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。
原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。
说明:返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。ch被复制。
注意:内存重叠问题。