const修饰指针有三种情况
-
const修饰指针 --- 常量指针
-
const修饰常量 --- 指针常量
-
const即修饰指针,又修饰常量
1、const修饰指针 --- 常量指针
const修饰的是指针,指针指向可以改,指针指向的值不可以更改
int a = 10;
int b = 10;
//const修饰的是指针,指针指向可以改,指针指向的值不可以更改
const int * p1 = &a;
p1 = &b; //正确
// *p1 = 100; // 报错
int const * a; //同上
p1是指向int类型的const对象的指针,称为常量指针。
记:const(常量) int *(指针) p。const后面是*,所以*p不可用修改,而p可以修改。
2、const修饰常量 --- 指针常量
const修饰的是常量,指针指向不可以改,指针指向的值可以更改
int a = 10;
int b = 10;
//const修饰的是常量,指针指向不可以改,指针指向的值可以更改
int * const p2 = &a;
//p2 = &b; //错误
*p2 = 100; //正确
指针常量顾名思义它就是一个常量,但是是指针修饰的。
记:int *(指针) const(常量) p2。const后面是p2,所以p2不可修改,而*p2可以修改。
3、const即修饰指针,又修饰常量
int a = 10;
int b = 10;
//const既修饰指针又修饰常量
const int * const p3 = &a;
//p3 = &b; //错误
//*p3 = 100; //错误
p3是一个const指针,然后指向了一个int 类型的const对象。称为指向常量的常指针。