参考博客:
https://blog.csdn.net/xingjiarong/article/details/47282255
常量指针是指针指向的内容是常量:
int a =5;
const int*n = &a;
*n=6;
上边这段代码会报错,因为n是一个常量指针,不能通过指针来改变指针所指向的变量的值;
但是下边这段代码是允许的,即可以通过其他引用变量来改变变量的值
n = &b;
指针常量是指指针本身是个常量,不能再指向其他的地址;
int a =5;
int a =500;
int *const n = &a;
n = &b;
上边这段代码会报错,因为指针常量不允许指向其他的地址;但是地址中保存的数值是可以改变的。
我们常用的是指针常量,确保指针变量不能被修改,而不是地址中保存的值。
记忆小技巧
区分常量指针和指针常量的关键就在于星号的位置,我们以星号为分界线,如果const在星号的左边,则为常量指针,如果const在星号的右边则为指针常量。如果我们将星号读作"指针",将const读作"常量"的话。美容正好符合。int *const n是指针常量,int const *n是常量指针;