常量指针
如果在定义指针变量的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量成为常量指针。
const int* p = &a; //常量指针
//举个例子
int a = 10;
int b = 20;
const int* p = &a; //常量指针
*p = 9; //操作错误
p = &b; //操作成功
因为常量指针本质是指针,并且这个指针是一个指向常量的指针,指针指向的变量的值不可以通过该指针修改,但是指针的指向可以修改。
指针常量
顾名思义,指针常量就是一个常量,但是是指针修饰的
int a = 10;
int b = 20;
int* const p = &a //指针常量
*p = 9; //操作成功
p = &b; //操作错误
因为声明了指针常量,说明指针变量不允许修改。即指针的指向不可以修改,但是指向的值可以修改。
**********************************2022.6.14更新*****************************************
看const限定的是谁
const int* p = &a; //常量指针 const后边限定的是*p,所以*p操作不是可以修改的
int* const p = &a //指针常量 const后边限定的是p,所以p的操作是不可以修改的
*********************************2022.6.30更新************************************************