1.常量指针 const在指针符号之前(*) ,一般用来修饰形参,防止所传的实参被修改
int a = 10;
int b = 20;
const int* p = &a;
指针的指向可以改变,不可以直接修改指针所指的值,可以间接修改指针所指的值,
*p = b 是非法的
p = &a; 是合法的
a = 20; 是合法的
2. 指针常量 指针的指向不能被修改,指针所指对象的值可以被直接修改
指针常量的值是指针,这个值因为是常量,所以不能被赋值。
int * const p = &a;
*p = 20; 是合法的
p = &b; 是非法的
三)指向常量的指针常量
顾名思议,指向常量的指针常量就是一个常量,且它指向的对象也是一个常量。
因为是一个指针常量,那么它指向的对象当然是一个指针对象,而它又指向常量,说明它指向的对象不能变化。
const int * const p =&a;
原文:https://www.cnblogs.com/gaobinyan/p/14381146.html