void *memcpy(void *dest,const void *src,size_tcount)//1.源串要有const修饰,这里参数都是void *
{
char *pDest=(char*)(dest);//2.将原始指针赋给新变量,char *
const char *pSrc=(constchar*)(src);
//3.目的地址和源地址重叠,从源地址的末尾方向开始拷贝
if( pDest>pSrc&& pDest<pSrc+count)
{
//将指针指向末尾
pDest = pDest + count-1;
pSrc = pSrc + count-1;
while(count--){
*pDest--=*pSrc--;
}
}
//4.目的地址和源地址不重叠,从源地址的开始方向拷贝
else
{
while(count--){
*pDest++=*pSrc++;
}
}
return pDest;//5.返回,这样可以嵌套使用
}