C++:const与引用

一、把引用t绑定到const对象上,我们称之为对常量的引用。与普通引用不同的是,对常量的引用不能被用作修改它所绑定的对象。

1 const int ci = 1023;
2 const int &r1 = ci;  //正确:引用及其队友的对象都是常量
3 r1 = 42;                //错误:r1是对常量的引用
4 int &r2 = ci;           //错误:试图让一个非常量引用指向一个常量对象

假设4是合法的,则可以通过r2来改变它引用对象的值,这是显然错误的。

二、初始化与对const的引用

允许为一个常量引用绑定非常量的对象、字面值、甚至是一个表达式。

1 int i = 42;
2 const int &r1 = i;     //正确:允许将const int&绑定到一个普通的int对象上
3 const int &r2 = 42;   //正确:r2是一个常量引用
4 const int &r3 = r2*2;//正确‘:r3是一个常量引用
5 int &r4 = r1*2;        //错误:r4是一个普通的非常量引用

原理:

1 double  dval = 3.14;
2 const int &ri = dval;
//在编译器中
const int tenp = dval; //由双精度浮点数生产一个临时的整型常量
const int &ri = temp; //让ri绑定这个临时量
原文地址:https://www.cnblogs.com/OKDA/p/13650525.html