1.语法结构
类型& 引用变量名(对象名) = 引用实体
例如
int n=5;
int &r=n; //r 引用了n ,r的类型是int & , r是n的别名
r += 5;
cout << "n的值=" << n << endl;
cout << "r的值=" << r << endl;
n是r的引用,那n就相当于r,所以它们共用一块地址,如果我们修改r的值,那么n的值也会跟着发生变化,反过来,n的改变也会引起r的改变。
2.引用可以作为函数的返回值
例如:
int n = 4;
int & SetValue() { return n;}
int main() {
SetValue() = 40;
cout << n;
return 0;
}
3.常引用
(1)不能通过常引用去修改引用的内容
int n;
const int& r=n;//r的类型是 const int &
r = 200;//错误
n = 300;//正确
(2)常引用和非常引用的转换
const T&和T&是不同的类型!!!
T&类型T类型的变量可以用来初始化 const T&类型的引用。
const T类型的常变量和 constT&类型的引用则不能用来初始化T&类型的引用,除非进行强制类型转换。
如
int n = 8;
int & r1 = n;
const int r2 = r1;//可以引用
/*
const int & r1 =n;
int & r2 = r1;不可以引用
*/