内存操作函数

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

相关推荐
wuminyu8 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
Navigator_Z9 小时前
LeetCode //C - 1033. Moving Stones Until Consecutive
c语言·算法·leetcode
iCxhust10 小时前
微机原理实践教程(C语言篇)---A001闪烁灯
c语言·开发语言·汇编·单片机·嵌入式硬件·51单片机·微机原理
爱编码的小八嘎10 小时前
C语言完美演绎9-9
c语言
笨笨饿11 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
爱编码的小八嘎13 小时前
C语言完美演绎9-16
c语言
她说彩礼65万14 小时前
C语言 文件
linux·服务器·c语言
努力努力再努力wz20 小时前
【MySQL进阶系列】一文打通事务机制:从锁、Undo Log 到 MVCC 与隔离级别
c语言·数据结构·数据库·c++·mysql·算法·github
薇茗20 小时前
【初阶数据结构】 左右逢源的分支诗律 二叉树1
c语言·数据结构·算法
eDEs OLDE20 小时前
CC++链接数据库(MySQL)超级详细指南
c语言·数据库·c++