【C++填坑】常量指针,指针常量

常量指针:

const int* p;    //常量指针:指向常量的指针。

为什么这么叫,怎么记?

看上面的格式,从左向右依次,先是const常量,再是int*指针。所以是常量指针。

指针常量:

int* const p;    //指针常量:被指针修饰的常量。

为什么这么叫,怎么记?

同上,从左向右依次。


上述介绍完是个啥,下面进行详细解释!

首先先了解常量变量的区别:

变量

上图可以看出,同一变量不会因为值的变化而改变变量的地址,但不同变量拥有不同的地址。

常量

加了const后就成为常量,作为常量就要有常量的尊严,不是轻易就可以改变值的。当然它的地址也不会变化。

结合上述,在分析一下常量指针和指针常量:

常量指针

本质是一个指针,再具体点是一个指向常量的指针。那它仅仅是个指针,具体指向哪个常量就不一定了(也就是指向可以变化)。

int a,b;
const int *p = &a //常量指针

*p = 9;//操作错误
p = &b;//操作成功

指针常量

本质是一个常量,再具体点是一个指针类型的常量。因为常量代表值不能变换,所以它的指向就不能变了(指向不能变化,但指向的常量的值是可以变化的)。

int a,b;
int * const p = &a //指针常量

*p = 9;//操作成功
p = &b;//操作错误
posted @ 2019-12-27 16:26  LampsAsarum  阅读(367)  评论(0编辑  收藏  举报