1.引用的概念
引用就是某一变量(目标)的别名,也即,引用是某个已存在变量的另一个名字。对引用的操作和对变量名直接操作完全一样。
2.引用的初始化
类型标识符 & 引用名 = 目标变量名;
此处 & 并非取地址操作符,而是起标识作用,标识所定义的标识符是一个引用。引用声明完成后相当于目标变量有两个名称,例如:
int a = 7;
int &b = a;
(b和a标志的是同一块内存,对a或者b进行操作,都可以改变它们指向的这一块儿内存存储的数据。)
3.定义引用注意事项
- 引用在定义时必须初始化,如 int &a;是违法的
- 引用在初始化时只能绑定左值而不能绑定常量值
- 引用一旦初始化,其值就不能再更改,即不能再做别的变量的引用
- 数组不能定义引用,因为数组是一组数据,无法定义其别名。
4.引用和指针的不同
- 不存在空引用,引用必须连接到一块合法的内存(存在空指针)
- 一旦引用被初始化为某个对象,就不能指向另一个对象。
int a,b;
int &c = a;
int &c = b; //使c又变成b的引用是违法操作
- 引用必须在创建时就被初始化,而指针可以在任何时间被初始化
5.引用的应用
C++增加引用的类型,主要的应用就是把它作为函数的参数,以扩充函数传递数据的功能,引用作为函数参数时是区别于值传递和址传递的引用传递。
利用引用传递可以克服 值传递和址传递 中容易出现错误且程序可读性差的缺点。直接操作变量,简单高效可读性又好。
#include <iostream>
using namespace::std;
void swap(int &x,int &y){
int temp = x;
x = y;
y = temp;
}
int main()
{
int a,b;
cout<<"请输入两个整数"<<endl;
cin>>a>>b;
swap(a,b);
cout<<"swap:"<<a<<" "<<b<<endl;
system("pause");
return 0;
}