笔记28:C++函数【memset()】的用法

一.先拿一个例子来看一下

这是我在学习Dijstra算法时老师的程序中的一行代码:

memset(mp,INF,sizeof(mp))

解释参数:mp是一个数组;INF是一个int类型的数据,代表无穷大;

该行的目的:将数组mp中所有的元素都用无穷大填充

对这一行代码的详细解释:

也就是说:这个函数在这一行中实现的功能是从mp数组起始位置开始(注意这里直接传参mp,是因为直接传递数组名,就是直接传递数组的地址,从而memset函数内部得到的是一个指向mp数组开始位置处的指针),将mp这个数组占据的整个内存空间中的值,全部改值为INF

补充一点:本来函数memset()中的第三个参数应该是字符数(详见下面的文档截图),但是这里ChatGPT为何解释为字节数,是因为如下截图:

即一个字符就是占据一个字节,所以这两种说法都对

a

a

a

a

a

二.官方文档的解释:

C 库函数 – memset() | 菜鸟教程

我个人以为:参数 n 被解释为【要被设置为该值的 “ 字节数 ” 】更为准确

a

a

a

a

a

三.官方文档的例子:

解释:str这个数组本来已经被这句话“This is string.h library function”装满了前33个位置,但是通过函数memset()又将这个数组的前7个字符所在的内存空间,全部给用$符号覆盖了【因为函数memset的第一个参数传递了数组的首地址,从首地址开始的7个字符位全部被改值】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值