一般来说,顶层 const 可以表示任意对象是常量,底层 const 则与指针和引用的符合类型有关(指向的是常量):
const int a = 2; //顶层 const
const int *p = &a; //底层const
const int &r = a; //用于声明引用的 const 都为底层const