1、常量指针
特点:指针指向可以改,不能通过指针更改值
例如:const int *p = &a;
int a=10,b=20; //初始化a,b const int *p = &a; //定义常量指针p,指针p指向a p = &b; //更改指针指向,正确 *p = b; //通过指针更改值,错误 a = b; //直接更改a的值,正确
2、指针常量
特点:指针指向不可以改,可以通过指针更改值例如:int * const p = &a;
int a=10,b=20; //初始化a,b int * const p = &a; //定义指针常量p,指针p指向a p = &b; //更改指针指向,错误 *p = b; //通过指针更改值,正确 a = b; //直接更改a的值,正确
3、const既修饰指针又修饰常量
特点:指针指向不可以改,不能通过指针更改值
例如:const int * const p = &a;
int a=10,b=20; //初始化a,b const int * const p = &a; //定义const既修饰指针又修饰常量的指针p,指针p指向a p = &b; //更改指针指向,错误 *p = b; //通过指针更改值,错误 a = b; //直接更改a的值,正确