0
点赞
收藏
分享

微信扫一扫

VS Code+DevChat助力非专业开发也能玩转代码编程

独孤凌雪 2023-11-09 阅读 48
c语言

目录

前言

1. memcpy 使用和模拟实现

1.1memcpy函数的使用

1.2memcpy函数的模拟实现

2. memmove 使用和模拟实现

2.1memmove的使用

2.2memmove函数的模拟实现

3. memset 函数的使用

4. memcmp 函数的使用

补充一些零散的额外知识点:

总结


前言

世上有两种耀眼的光芒,一种是正在升起的太阳,一种是正在努力学习编程的你!一个爱学编程的人。各位看官,我衷心的希望这篇博客能对你们有所帮助,同时也希望各位看官能对我的文章给与点评,希望我们能够携手共同促进进步,在编程的道路上越走越远!

想回顾上节内容的请点击这里字符函数和字符串函数详解


提示:以下是本篇文章正文内容,下面案例可供参考

针对内存块的!不在乎内存中的数据!

1. memcpy 使用和模拟实现

1.1memcpy函数的使用

void * memcpy ( void * destination, const void * source, size_t num );

1.2memcpy函数的模拟实现

memcpy函数可以处理不重叠的内存之间的数据拷贝

内存之间如果有数据重叠,要进行数据拷贝,可以使用memmove函数

代码演示:

2. memmove 使用和模拟实现

void * memmove ( void * destination, const void * source, size_t num );

memcpy函数只要能够处理不重叠的内存拷贝就行,重叠的情况就交给memmove函数就行了
但是我们发现(vs系类)有时候标准库中的memcpy也能实现重叠拷贝,但是并不代表所有的编译器实现的标准库中的memcpy都能实现重叠拷贝

2.1memmove的使用

2.2memmove函数的模拟实现

3. memset 函数的使用

void * memset ( void * ptr, int value, size_t num );

memset是用来设置内存的,将内存中的值以字节为单位设置成想要的内容。

设置字符:

设置整型:

4. memcmp 函数的使用

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

memcmp--比较ptr1的前num个字节和ptr2的前num个字节做比较

比较字符:

比较整型:

补充一些零散的额外知识点:

sizeof(数组名):只有在定义数组的时候才代表整个数组,在传参的时候,并不代表整个数组 

在linux下,assert宏不管是在debug,还是在release版本下,都会起作用
如果循环读入字符串的话,scanf()遇到空格,就停止读取,一定要用gets()才能完整的读取一个字符串

在#if 0 和#endif 之间的代码是不参与编译的


总结

好了,本篇博客到这里就结束了,如果有更好的观点,请及时留言,我会认真观看并学习。
不积硅步,无以至千里;不积小流,无以成江海。

举报

相关推荐

0 条评论