(c++)二进制文件读写问题?

刚学二进制文件读写有个问题为什么在写二进制文件时第一个传入的数据要加const即constchar*buffer但在读的时候第一个传入的数据却没有加const即char*... 刚学二进制文件读写 有个问题 为什么在写二进制文件时 第一个传入的数据要加 const即const char*buffer 但在读的时候第一个传入的数据 却没有加const即char*buffer
有大神能告诉我吗 这其中的const存在与不存在有什么大的用处 不想死记硬背 想理解其中的用途
展开
 我来答
庄政警
2020-03-11 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:878万
展开全部
用const修饰的对象是不能被修改的对象,是只读的

当明确知道一个函数的参数不会被修改,那么就可以用const修饰这个参数,这样做的好处是防止无意修改了本不想修改的参数,对const对象的修改在编译期就可以发现错误
比如这个write函数里的buffer, 从这块内存读取数据写入文件,这块内存的数据是肯定不会改变的,所以加个const保证不会修改它,防止喝醉了,发神经时无意修改了它,也就是说const是防止自己犯错误的。 write函数里的这个const就是write这个函数的作者防止自己出错而加入的,这是一种习惯,而且调用者一看const也知道这个参数是只读的,如果这个参数变化了,肯定不会是这个函数引起的。几乎所有的c/c++库都遵循这一习惯
read这个参数就不能加const,因为这是从文件读数据写入到buffer里,那buffer自然不能是只读的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式