将引用绑定在cosnt对象上,称为对常量的引用,对常量的引用依旧不可以修改它所绑定的对象
如:
const int c = 1024;
const int &c1 = c; //引用与其对象的类型都是const int 类型 匹配
不可以将int型引用绑定在const int 的对象之上
初始化常量时允许使用任意类型的表达式作为初始值 只要表达式的结果可以转换为引用的类型即可(因此可以把const类型的引用绑定在普通的int类型上面,也可以把const int的引用绑定在double类型上面)
事实上在发生类型不匹配的const 类型的绑定时 程序会先进行类型转换生成一个临时量 绑定是发生在临时量上的
double daval = 3.14;
const int temp = daval;//remp就是一个临时量
const int &r = daval;
对const的引用可能引用一个非const类型的对象
常量引用仅仅对引用可以参与的操作做出了限定 而对对象本身的操作不做限定 所以 有其他的方式来改变引用的值
int i = 0;
const int &r1 = i;
i = 1;//i的值可以被修改 因此r1的值也被改为了1