猿问

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

刚学二进制文件读写 有个问题 为什么在写二进制文件时 第一个传入的数据要加 const即const char*buffer 但在读的时候第一个传入的数据 却没有加const即char*buffer
有大神能告诉我吗 这其中的const存在与不存在有什么大的用处 不想死记硬背 想理解其中的用途

慕森王
浏览 119回答 1
1回答

千巷猫影

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