常量指针和指针常量

int a=10;
int b=20;
int *p=&a;//定义一个指针
1.常量指针:const修饰指针,例如:const int *p=&a;
特点:指针的指向可以修改,但指针指向的值不可以改。
(p可以指向a的地址,也可以指向b的地址,指针的指向可以修改。但是如果指针p指向a的地址,那么a的值不可以改变)
举例:const int *p=&a;
常量指针和指针常量
(黑色的箭头就是指针指向,红色框框就是指针指向的值)
*p=20;//错误,改变了指针指向的a的值
p=&b;//正确,只是改变了指针指向
2.指针常量:const修饰常量,例如:int * const p=&a;(此时变量p有const修饰,就是个不可更改的常量)
特点:指针的指向不可以修改,但是指针指向的值可以修改
举例:const int *p=&a;
*p=20;//正确,指向的值可以修改
p=&b;//错误,指针的指向不可以修改