2.30
const int v2=0; int v1=v2; //v2顶层const
int *p1=&v1,&r1=v1;
const int *p2=&v2,*const p3=&i,&r2=v2;//p2底层const,p3前面一个const是底层const,后面一个const是顶层const r2是底层const
2.31
r1=v2;//合法,v2顶层const
p1=p2;// 不合法,p2是底层const p1不是
p2=p1;// 合法
p1=p3;//不合法 p3是顶层和底层const p1不是
p2=p3;// 不合法 p2是底层const p3是顶层和底层const