const与指针共有三种修饰方式
1、修饰指针(常量指针)
2、修饰常量(指针常量)
3、即修饰常量又修饰指针
常量指针
int a = 1;
const int *p = &a;
//指针的指向可以改(p值本身可以改),但指针指向的值不能改(*p不能改)
指针常量
int a = 1;
int * const p = &a;
//指针的指向不可以改(p值本身不可以改),但指针指向的值可以改(*p可以改)
及修饰指针又修饰常量
int a = 1;
const int * const p = &a;
//指针的指向不可以改(p值本身不可以改),指针指向的值也不能改(*p不能改)
总而言之,有const在*后的,p值不能改,有const在*前的*p不能改