1、指向常量的指针(指针常量):不能用于改变其所指对象的值。
const int i=5;
const int *p=&i;
分析:这里的const int为数据类型,即声明说明符,*p为声明符表示p是一个指针,所以指针p指向const int型的变量。
1.1、要想存放常量对象的地址,只能使用指针常量。
1.2、允许一个指针常量指向一个非常量对象。和常量引用一样,指针常量仅仅要求不能通过自身改变对象的值,并不代表对象本身不能改变。
int i=5;
const int *p=&i;
2、常量指针:必须初始化且指向不能再改变。指针本身是一个常量并不意味着不能通过指针修改所指对象的值。
int i=5;
int *const p=&i;
分析:p是一个常量,其次它是一个指针并指向int类型。这里的int *const为数据类型,p为声明符。