顶层const:const修饰的变量本身是一个常量,无法修改,对于指针而言应该是值的指针本身是一个常指针(常量指针);
底层const:const修饰的变量所指向的对象是一个常量,对于指针而言应该表示的是指针所指向的内容是一个常量(指针常量);
int const* a=10//等价于int const(*a)=10,const修饰的是*a,表示指针指向的内容为常量
//所以a是指针常量,也是底层const
int *const a=10//等价于int* const(a)=10,const修饰的是指针a,表示指针的指向是常量
//所以a是常量指针,也是顶层const
可以通过判断const修饰的内容来判断指针的类别,const修饰的是其左边的内容,或者通过上述代码中的加()来区分。