1.常量指针
当const修饰指针时,我们称其为常量指针
特点:指针指向地址可以改,指针指向的值不可更改
语法:const 数据类型 * 指针变量名
记忆方法:常量指针为常量的指针,重点在常量上,常量为不可更改的值,但地址可改
例子
int a = 10;
int b = 10;
const int* p = &a;
//指针指向的值不可改,指针指向地址可以改
*p = 20; //不可修改其指针指向的值,所以错误
p = &b; //修改指针地址
2.指针常量
当const修饰常量时,我们称之为指针常量
特点:指针指向地址不可更改,指针指向的值可以改
语法: 数据类型 * const 指针变量名
记忆方法:指针常量为指针的常量,重点在指针上,指针为地址,因此指针指向的不可更改,该指针指向的值可更改
例子
//2.const修饰常量 指针常量
int a = 10,b = 10;
int* const p2 = &a;
//指针指向的值可以改,指针指向的地址不可以改
*p2 = 20;//修改了指针指向的值
p2 = &b; //不可修改指针指向地址,错误
还有第三种
const既修饰指针,又修饰常量
从而既不能改变指针指向地址,也不能改变指针指向的值
例子
//3.const修饰指针和常量
int a = 10,b = 10;
const int* const p3 = &a;
//指针的指向和指针指向的值都不可修改
// * p = 100;//错误
//p3 = &b; //错误