一、引用
1、引用的概念:
- 定义引用时一定要将其初始化成引用某个变量。
- 初始化后,它就一直引用该变量,不会再引用别 的变量了。
- 引用只能引用变量,不能引用常量和表达式。
2、格式:
类型名 &引用名=某个变量名;
例如:int n=4;
int &r=n;
其中 r 的类型为int&
某个变量的引用,等价于这个变量,相当于该变量的一个别名
例题:
int n = 4; int & r = n; r = 4; cout << r; //输出 4 cout << n; //输出 4 n = 5; cout << r; //输出5
3、引用的示例
1)有了C++的引用
void swap( int & a, int & b) { int tmp; tmp = a; a = b; b = tmp; } int n1, n2; swap(n1,n2) ; // n1,n2的值被交换
2)作为函数的返回值
int n = 4; int & SetValue() { return n; } int main() { SetValue() = 40; cout << n;//输出40 return 0; }
4、常引用
定义引用时,前面加const关键字,即为“常引用”
int n;
const int & r = n;
其中r 的类型是 const int &
注意:不能通过常引用去修改其引用的内容:
int n = 100; const int & r = n; r = 200; //编译错 n = 300; // 没问题
5、常引用和非常引用的转换
const T & 和T & 是不同的类型!!!
T & 类型的引用或T类型的变量可以用来初始化 const T & 类型的引用。
const T 类型的常变量和const T & 类型的引用则 不能用来初始化T &类型的引用,除非进行强制类型 转换。