指针常量就是“指向常值的指针”,其类容不能改变,但是指向的地址可以改变;
常量指针就是“指向值的常指针”,其类容可以改变,但是指向的地址不能改变。
1>const int *p;
2>int const *p;
3>int * const p;
以上3中指针,1和2的写法不一样,但是作用一样,都是声明了一个指针常量,3为常量指针。
int i = 1;
int j = 2;
对于1,2,举例如下:
const int *p = &i;
*p = 2; // 错误!指针常量不能改变指向的地址存储的值。
p = &j; // 正确,可以改变指向的地址。
对于3,举例如下:
int * const p = &i;
*p = 2; // 正确,可以改变指向的地址存储的值。
p = &j; // 错误,不能改变指向的地址。