C语言——内存函数

📅 2026/7/23 19:56:40
C语言——内存函数
目录一memcpy的使用和模拟实现1memcpy的使用2memcpy的模拟实现二memmove的使用和模拟实现1memmove的使用2memmove的模拟实现三memset函数的使用四memcmp函数的使用一memcpy的使用和模拟实现1memcpy的使用核心功能实现对任意类型数据的拷贝头文件#include string.h语法void* memcpy(void* destination , const void* source , size_t num)1函数从source处复制num个字节到destination的地址中2函数遇到\0不会停下3对于destination与source有重叠元素的情景不适用4返回值为地址destination运用实例打印结果1 2 3 4 52memcpy的模拟实现二memmove的使用和模拟实现1memmove的使用核心功能与memcpy类似可以实现对不同数据的拷贝。与memcpy的区别在于memmove可以对源内存块和目标内存块的重叠情况进行处理。头文件#include string.h语法void* memmove(void* destination,const void* source, size_t num)返回值为地址destination运用实例运行结果1 2 1 2 3 4 5 8 9 102memmove的模拟实现三memset函数的使用核心功能将指定内存块的前n个字节统一设置成单个字符或数值。头文件#include string.h语法void* memset(void* ptrint valuesize_t num)ptr为操作对象的指针value为要设置的值num为要设置的字节数运用展示运行结果xxxxx world四memcmp函数的使用核心功能对两个内存块逐字节进行比较前n个字节按照二进制的ASCII码值进行比较返回结果为整数不会因为\0而终止。头文件#include string.h语法int memcmp(const void* ptr1const void* prt2,size_t num)num表示字节数并非元素的个数。当ptr1大于ptr2时返回一个大于0的数当ptr1等于ptr2时返回0当ptr1小于prt2时返回一个小于0的数运用实例运行结果为-1分析前20个字节的内容都一样第二十一个字节不一样根据小端存储规则arr1中的第21个字节内容为06arr2中为08所以返回一个负数