1、指向const的指针不能用于改变值。
int rate[5] = {1,2,3,4,5};
const int * p = rate; // p指向数组的首地址
p指向的int 类型声明为const,表明不能使用p来更改它指向的值。
*p = 9; // 不允许
p++;//允许
p[2] = 9; //不允许
rate[0] = 10; //允许
无论指针表示法还是数组表示法,都不允许p修改它指向数据的值,并且rate未声明为const,可通过rate修改元素在的值,也可以让p指向别处。
2、声明一个不能指向别处的指针
int rate[5] = {1,2,3,4,5};
int * const p = rate; // p指向数组的首地址
*p = 6; //ok
p = &rate[1]; //err
3、使用两次const,该指针既不能更改它指向的地址,也不能修改地址上的值
const int * const p = rate; // p指向数组的首地址
*p = 6; //err
p = &rate[1]; //err
const 修饰就近原则。