首先,先来了解两种指针的声明方式:
常量指针(const修饰指针)
const int* p = &a;
指针常量(const修饰常量)
int* const p = &a;
区分技巧:
const放在*号的左边是常量指针,const放在*号的右边是指针常量
接下来再说一下这两种指针之间的特点与区别:
常量指针:指针的指向可以修改,指针指向的值不可以修改
指针常量:指针的指向不可以修改,指针指向的值可以修改
两种指针的特点与区别刚好是相对应的
举一个形象的例子
先把指针理解为开房子的钥匙,变量为房子
常量指针就相当于用钥匙(指针)可以打开(指向)任何一个房子(变量),但是不可以弄乱(修改)原先房子的布局(变量的值)
指针常量刚好相反,可以随意弄乱(修改)原先房子的布局(变量的值),但是钥匙(指针)只能用来打开(指向)这个房子(变量),不能再用来打开(指向)其他的房子(变量)