指针常量和常量指针的区别

  指针常量:本质上是一个常量,不过这个常量是个指针;比如:

int a = 3, b = 4;
int
* const p1;

这个const是用来修饰p1这个指针的,所以指针本身不可以被修改,但是这个指针所指向的值是可以被修改的;

p1=&b;    //错误;
*p1=b;    //正确

  常量指针:本质上是一个指针,不过这个指针指向一个常量;比如

int c = 5,d = 6;
int const * p2 = &c;
const int * p3 = &c;

这里的const是用来修饰int的,即c是一个常量;这里指针p2 p3可以修改,但是不可以通过指针修改c的值;比如:

p2 = &d;    //错误
c = d;    //正确

常量指针只是限制通过指针来修改常量的值;

原文地址:https://www.cnblogs.com/Triw/p/9480081.html