1.1 引用
1、语法:类型名&引用名=某变量名 e.g. int &b=a;
- 定义:引用则等价这个变量
- 引用名的类型是:类型 &
- 注意事项:
- ①定义引用时,一定要将其初始化成引用某个变量
- ②初始化后,它就一直引用该变量,不会再引用别的变量
- ③引用只能引用变量,不能引用常量、表达式
- ④引用一个引用是合法的 e.g.
int &b=a;int &c=b//legal
2、引用实例:swap函数
- c 指针:
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
swap(&n1,&n2);
- c++ 引用:
void swap(int &a,int &b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
swap(n1,n2);
3、引用可作为函数的返回值
int n=4;
int &f(){return n;}
f()=40;
cout<<n;//output 40
4、常引用
- 语法:const 类型 & 引用名=某变量名 e.g.:
const int &B=A;
- 引用名的类型是 const 类型&
- 不能通过常引用修改其引用的内容
5、引用与常引用的关系
- T& 或者 T 可以初始化const T&的引用
- const T和const T&不能初始化T& (除非强制类型转化)
e.g.
int A;
int &B=A;
const int &C=B;
const int &D=A;
int & E=C;//ILLEGAL
const int &F=C;