我觉得你第二个说法不对,对于函数外面来说这个写法是无意义的,就你的例子来说,如果不能访问第10个,光看这个函数声明无法保证的,调用者无法确认这个假设是安全的,因为函数实现里只是不能用这个path参数指向第10个,不代表函数不会访问第10个,最简单的,万一里面有*(path+1)呢?
所以这个写法只是方便阅读这个函数实现的人,对于调用者完全没有额外意义,不管1个const还是2个const,调用者都只能认为这个函数不会去修改path指向的那个字符串,自己传给path参数的变量在调用后,也仍然会指向原先的路径字符串
【 在 comus 的大作中提到: 】
: 我感觉老外肯定是看了函数实现,发现path并没有做++操作,所以说要加第二个const。
: 的确像你说得,一个是增加可读性,让函数外面知道path在内部没有做++操作,不会导致异常(比如外面是一个int [10]数组,传了第[9]到函数里,函数不会++指向非法得[10]),另一方面就是让维护的人修改函数实现的时候不要添加++操作,如果要++操作编译器会提示,从而让程序员认真考虑。
:
: ...................
--
FROM 121.6.158.*