(c++)二进制文件读写问题?
刚学二进制文件读写有个问题为什么在写二进制文件时第一个传入的数据要加const即constchar*buffer但在读的时候第一个传入的数据却没有加const即char*...
刚学二进制文件读写 有个问题 为什么在写二进制文件时 第一个传入的数据要加 const即const char*buffer 但在读的时候第一个传入的数据 却没有加const即char*buffer
有大神能告诉我吗 这其中的const存在与不存在有什么大的用处 不想死记硬背 想理解其中的用途 展开
有大神能告诉我吗 这其中的const存在与不存在有什么大的用处 不想死记硬背 想理解其中的用途 展开
1个回答
展开全部
用const修饰的对象是不能被修改的对象,是只读的
当明确知道一个函数的参数不会被修改,那么就可以用const修饰这个参数,这样做的好处是防止无意修改了本不想修改的参数,对const对象的修改在编译期就可以发现错误
比如这个write函数里的buffer, 从这块内存读取数据写入文件,这块内存的数据是肯定不会改变的,所以加个const保证不会修改它,防止喝醉了,发神经时无意修改了它,也就是说const是防止自己犯错误的。 write函数里的这个const就是write这个函数的作者防止自己出错而加入的,这是一种习惯,而且调用者一看const也知道这个参数是只读的,如果这个参数变化了,肯定不会是这个函数引起的。几乎所有的c/c++库都遵循这一习惯
read这个参数就不能加const,因为这是从文件读数据写入到buffer里,那buffer自然不能是只读的
当明确知道一个函数的参数不会被修改,那么就可以用const修饰这个参数,这样做的好处是防止无意修改了本不想修改的参数,对const对象的修改在编译期就可以发现错误
比如这个write函数里的buffer, 从这块内存读取数据写入文件,这块内存的数据是肯定不会改变的,所以加个const保证不会修改它,防止喝醉了,发神经时无意修改了它,也就是说const是防止自己犯错误的。 write函数里的这个const就是write这个函数的作者防止自己出错而加入的,这是一种习惯,而且调用者一看const也知道这个参数是只读的,如果这个参数变化了,肯定不会是这个函数引起的。几乎所有的c/c++库都遵循这一习惯
read这个参数就不能加const,因为这是从文件读数据写入到buffer里,那buffer自然不能是只读的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询