C++常量引用(指向常量的引用)
引用的类型必须和所引用的类型一致,但是const引用是例外(只要被引用的类型能够转换为常量引用的类型):
int main() {
double dval = 3.14;
const int &r = dval;
std::cout << "r is:" << r << std::endl;
// int &s = dval; // 非法,不能将非常量引用绑定到常量上
dval = 45;
std::cout << "r is:" << r << std::endl;
int x = 1;
const int &t = x;
std::cout << "t is:" << t << std::endl;
x = 2;
std::cout << "t is:" << t << std::endl;
return 0;
}
定义常量引用后,再改变引用的值,注意看输出
输出:(注意到r不变,而t变了)
r is:3r is:3t is:1t is:2
注意:const int &r = dval;
这里编译器实际上相当于下列语句:引用和原dval已经不是同一个地址了
const int temp = dval;
const int &r = temp;