为了账号安全,请及时绑定邮箱和手机立即绑定

关于二进制文件读写问题?该怎么做呢?

关于二进制文件读写问题?该怎么做呢?

C++
慕森王 2022-05-27 15:11:12
刚学二进制文件读写 有个问题 为什么在写二进制文件时 第一个传入的数据要加 const即const char*buffer 但在读的时候第一个传入的数据 却没有加const即char*buffer有大神能告诉我吗 这其中的const存在与不存在有什么大的用处 不想死记硬背 想理解其中的用途
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

用const修饰的对象是不能被修改的对象,是只读的
当明确知道一个函数的参数不会被修改,那么就可以用const修饰这个参数,这样做的好处是防止无意修改了本不想修改的参数,对const对象的修改在编译期就可以发现错误
比如这个write函数里的buffer, 从这块内存读取数据写入文件,这块内存的数据是肯定不会改变的,所以加个const保证不会修改它,防止喝醉了,发神经时无意修改了它,也就是说const是防止自己犯错误的。 write函数里的这个const就是write这个函数的作者防止自己出错而加入的,这是一种习惯,而且调用者一看const也知道这个参数是只读的,如果这个参数变化了,肯定不会是这个函数引起的。几乎所有的c/c++库都遵循这一习惯
read这个参数就不能加const,因为这是从文件读数据写入到buffer里,那buffer自然不能是只读的

查看完整回答
反对 回复 2022-05-30
  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号