char *const p,const char *p,char const *p和区别(容易混淆)
我在c++中学到了这个地方的时候,我们会碰到下列的这些定义.
char *const p
const char *p
char const *p
如果学得不够深入的话,很难分清这些区别。
我们来看第一种char *const p
我们很容易能看到const 修饰的是p即p是不能被修改的。
所以p指向的内容是可以修改的,但是改变p是不可以的。
第二种是const char *p
我们可以看到const是修饰 指针p指向char类型,可以认为是p所指向的内容是不可以被修改的。
第三种就是char const p,假如我们按照以前的观点,const是修饰p的,但是我们没见过这样的情况,所以还是跟第二种情况一样, const是修饰char *p的。