2.27
int i=-1,&r=0; //不合法,其中r必须是一个int的引用,0是常量
int *const p2=&i2; //合法,p2是指向i2的指针,其中p2不能改变
const int i=-1,&r=0; //合法,i是常量,r是0的引用
const int *const p3=&i2; // 合法,p3指向一个i2常量,并且p3不能改变
const int *p1=&i2; //合法,p1指向一个常量i2;
const int &const r2; //不合法,r2是一个引用要初始化
const int i2=i,&r=i;//合法,定义int型i2用i初始化,r是引用一个const int
Tips:目前我水平来看
const int& 和 int const&都是表示此引用所代表的是const int类型变量,同样也无法用此引用修改.
表示此引用所代表的int类型变量无法使用此引用修改,要使用int & const
2.28
int i,*const cp; //不合法 cp必须初始化
int *p1,*const p2;// 不合法 p2必须初始化
const int ic,&r=ic; //不合法 ic必须初始化
const int *const p3; //不合法 p3必须初始化
const int *p; //合法
2.29
i=ic;//合法
p1=p3;//不合法 p1指向int p3指向const int
p1=⁣ // p1指向int ic是const int
p3=⁣ //p3不能改变 (const)
p2=p1; //p2不能改变(const)
ic=*p3; //ic不能改变(const)