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