顶层const 指的是指针本身是一个常量,底层const指的事指针所指的对象是一个常量。
int i=0;
int* const p1=&i; //不能改变p1的值,这是一个顶层const
const int ci=42; //不能改变ci的值,这是一个顶层const
const int *p2=&ci; //不能改变p2的值,这是一个底层const
const int* const p3=p2;//靠右的const是顶层const,靠左的const是一个底层const
const int &r=ci;//用于声明引用的const,都是底层const