1 int* p;
2 const int* p;
3 int const* p;
4 int* p const;
5 const int* p const;
要判断const修饰指针的特性,我们可以看const这个关键字在*号的左边还是右边。
const int* p;
const在*号的左边,说明指针p指向的内容的值不能被修改,而指针的地址可以被修改,即可以从新指向到别的变量。
int* p const;
const在*号的右边,说明指针p是一个常量指针,在使用的时候必须初始化,因为一旦指向了某个变量之后,它就永远指向这个变量了,不能修改指针指向的地址,而指针p所指向的内容可以修改。
const int* p const;
如果const出现在变量两边的话,那么这个指针p本身的值不能被修改,指针p指向的变量的值也不能被修改。