#include<iostream> int main() { int val=0,val2=1; int &refVal=val; //此时refval和val是同一个值,修改任意一个另外一个会一起改变 /***************************************/ int &refVal2=10;//错误,引用必须是一个变量,不能是字面值 return 0; }
const 引用,也叫指向const常量的引用
他只能指向一个const,不能指向非const
const int ival=1; const int &refVal=ival;//正确,refVal是一个const引用,它必须初始化为一个const类型的常量 int &ref2=ival;//错误,非const引用不能初始化为一个const常量
与普通引用相比:
-
const引用可以直接初始化为一个字面值
-
const引用可以直接初始化为不同类型的变量
-
非const引用只能够引用同类型的变量
int i=40; const int &ref3=42;//OK const int &ref4=i+40;//OK double dval=3.14; const int &ri = dval; //OK const int tval=2; int &r2 = tval;//错误