内存操作函数

一. 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个内存操作函数的最后一个参数,都是以字节为单位,而不是以元素为单位!!!

相关推荐
祈安_3 天前
C语言内存函数
c语言·后端
norlan_jame5 天前
C-PHY与D-PHY差异
c语言·开发语言
czy87874755 天前
除了结构体之外,C语言中还有哪些其他方式可以模拟C++的面向对象编程特性
c语言
m0_531237175 天前
C语言-数组练习进阶
c语言·开发语言·算法
Z9fish5 天前
sse哈工大C语言编程练习23
c语言·数据结构·算法
代码无bug抓狂人5 天前
C语言之单词方阵——深搜(很好的深搜例题)
c语言·开发语言·算法·深度优先
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习
枫叶丹45 天前
【Qt开发】Qt界面优化(七)-> Qt样式表(QSS) 样式属性
c语言·开发语言·c++·qt
with-the-flow5 天前
从数学底层的底层原理来讲 random 的函数是怎么实现的
c语言·python·算法
Sunsets_Red5 天前
P8277 [USACO22OPEN] Up Down Subsequence P 题解
c语言·c++·算法·c#·学习方法·洛谷·信息学竞赛