1.内存拷贝函数memcpy( )
void * memcpy ( void * destination, const void * source, size_t num );
功能:输入拷贝和被拷贝的地址还有要拷贝的字节数,然后将内存中的字节数进行拷贝
1.函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。
2.这个函数在遇到’\0’ 的时候并不会停下来。
3.如果source和destination有任何的重叠,复制的结果都是未定义的。
之所以要传入void的地址是因为,拷贝传入的地址不知道是什么类型的地址,void能接收所有类型的地址,这一点和qsort函数的原理很像,而返回类型是void*类型是让你返回后强制类型转换后再去使用返回的指针
举例
模拟实现memcpy( )函数
这里的void*一上来不能直接解引用,需要强制类型转换成有类型的指针,才能去解引用
#include<stdio.h>
void* my_memcpy(void* dest, const void* src, size_t count)
{
while (count)
{
*(char*)dest = *(char*)src;
((char*)dest)++;//这里如果不加一层括号就会先++,所以要加括号
((char*)src)++;
//或者下成下面这两行
//++和+1要区分一下,+1这里是指跳过一个类型,但不会