1:引用是被引用变量的别名,只要被引用变量和引用变量之一合法的改变,另外一个变量就会改变。
#include <iostream>
using namespace std;
int main()
{
int i = 2000;
const int & refI = i;
i = 10;
cout<<"refI = "<<refI<<endl;
return 0;
}
上述代码的运行结果是:
这里还有一个比较有趣的例子,虽然结果没变,但是可以加深理解。
#include <iostream>
using namespace std;
int main()
{
int i = 2000;
const int & refI = i+2;
cout<<"refI = "<<refI<<endl<<"I = "<<i<<endl;
return 0;
}
结果是:
可以发现,refI的结果没变,这是因为refI不是i的const型引用,而是i+2返回的结果的常量引用。
2、const 型引用又是一种特殊情况,如上面的例子,refI是绝对不能改变的,所以const 型引用是可以用常量进行初始化(或者是表达式)的,而非const型引用只能用相应类型的非const变量进行初始化。
#include <iostream>
using namespace std;
int main()
{
const int & refI = 200;
cout<<"refI = "<<refI<<endl;
return 0;
}
上述代码的运行结果是: