内存操作函数

一. memcpy 函数

相对于strcpy,它的优点在于:

1.可以用来复制任意类型数据,而strcpy只能用于复制以 ' \0 ' 结尾的字符串

2.不依赖于任何特定的结束标志
memcpy的缺点:就是如果dest和src之间有重叠部分了,就不能用memcpy,就得用memmove了

代码实现:

二. memmove 函数

memmove可以进行重叠拷贝,举例说明:

代码实现:将12345拷贝到34567上:

三. memset 函数

代码实现:

那如果是int类型呢?

由上可知:结果并不是我们所想的是 9 9 9 9 9 6 7 8 9 10, 造成这样的结果,原因是:

最后一个参数是以字节为单位,而不是以元素为单位。如果是整型,就是4个字节,他只是将每个字节设置成了9 ,并不是最终这个整型为9

区分:

至于memcpy和memmove,虽然他们最后一个参数也是以字节为单位,但是他们只是进行数据的搬运,并不会像memset进行数据的修改

四. memcmp 函数

代码实现:

最后!

注意的地方:

这4个内存操作函数的最后一个参数,都是以字节为单位,而不是以元素为单位!!!

相关推荐
Yupureki14 小时前
从零开始的C++学习生活 4:类和对象(下)
c语言·数据结构·c++·学习
小秋学嵌入式-不读研版14 小时前
C56-字符串拷贝函数strcpy与strnpy
c语言·开发语言·笔记
晨非辰17 小时前
《剑指Offer:单链表操作入门——从“头删”开始破解面试》
c语言·开发语言·数据结构·c++·笔记·算法·面试
王夏奇1 天前
C语言中#pragma的用法
c语言·开发语言
Pocker_Spades_A1 天前
【C语言数据结构】第2章:线性表(2)--线性表的顺序存储结构
c语言·数据结构
代码村新手1 天前
C语言-字符函数和字符串函数
c语言·开发语言
Yupureki1 天前
从零开始的C++学习生活 3:类和对象(中)
c语言·c++·学习·visual studio
凤年徐1 天前
【C++】string类
c语言·开发语言·c++
小龙报1 天前
《KelpBar海带Linux智慧屏项目》
linux·c语言·vscode·单片机·物联网·ubuntu·学习方法
XH华1 天前
C语言深度解剖:第一章关键字(一)
c语言·开发语言