memmove的功能与memcopy极为相似,是memcopy的升级版,memcopy要求可以使用在不重叠的内存空间,memmove则升级为在重叠的内存空间中也可以使用;
如下图可以直观地看出,当dest的起始位置在src前,将src拷贝至dest中,只需把src中的元素从前往后挨个复制过去即可;
如下图,当dest的起始位置在src后,将src拷贝至dest中,把src中的元素从前往后挨个复制过去是行不通的,此时需要把src中的元素从后往前挨个复制过去即可
所以在memcopy的基础上加上判断语句来判断dest和src谁的起始位置在前,分开进行处理即可