const修饰指针
const修饰指针
常量指针
特点为指针的指向可以改,但是指针指向的值不可以修改
int a = 10;
int b = 20;
const int *p = &a;
*p = 20; //错误,指针的指向的值不可更改
p = &b; //正确
指针常量
特点是指针的指向不可以改,指针指向的值可以改
int * const p = &a;
*p = 20;//正确,指针指向的值可以改
p = &b; //错误,指针指向不能改
const既修饰指针又修饰常量
const int* const p;//都不可以改
一种很好的记忆方法
常量指针和指针常量很容易搞混,不过其实你根据意思来记就比较容易
常量 ————> 视作const
指针 ————>视作*
那么常量指针就其实是const + 类型* + 变量名,这里暂定为p
然后const固定了* p,那么 *p就变不了了,也就是p指向的变量值不能改变
反过来,指针常量就是类型*+const+变量名,这里暂定为p
然后const固定了p,那么p就变不了了,也就是p的指向不能变了