常量引用,常量指针与指向常量的指针
常量引用与指向常量的指针类似,均是不能通过该指针或者引用改变相应变量的值,理解为自以为是
。
int a = 0;
const int *p = &a; //不可以通过p改变a
const int &r = a; //不可以通过r改变a
一般来说引用和指针在等号两边的类型要一致,但是常量引用不是,只要等号右边可以能转化为等号左边的类型即可。机理是相当于加入了temp变量。
double a;
const int &r = a; //正确
const int &r = 10;//正确
指向常量的指针也有类似的性质
int a;
const int *p = &a; //可以指向非const对象,但是普通指针不可以指向常量。
常量指针意味着指针本身就是常量,和其他const常量一样,需要初始化。
int *const p = &a; //从后往前看