C++语言学习记录-9:引用

引用是C++中的一种特有的语法,用以优化C中只能使用指针的缺点,同时也是有自己语言特性的一个语法。
如果不使用引用,在这里的程序就无法正常实现它的功能。

#include<iostream>
using namespace std;
void swap(int a, int b) //定义一个swap函数实现数据的交换
{
	int t = a; //定义参数t,a的值赋给t
	a = b; //b的值赋给a
	b = t; //t的值再次赋给b,使b等于原来的aint main()
{
	int x =5, y =8;
	cout<<x<<y<<endl;
	swap(x,y);
	cout<<x<<y<<endl;
	return 0;
}

上面的例子看似可以正常运行,实际上在编译环境中得到的结果是x和y并没有发生任何交换。
以上情况发生的原因就是在x,y将值赋给ab后,xy与ab间的关系就不存在了,因此swap函数的运行是与xy无关的,这里只实现了参数的单向传递。

引用的功能就在于可以将两个变量“绑定”起来,实现参数的双向传递,以便于类似以上的程序顺利运行。如:

int i,j;
int &r=i;
j = 10;
j = r;

以上的代码就是将r与i“绑定”,在更改r的值时,i的也就相应的发生改变,反之亦然。
注意:一个引用被初始化之后,就不能再指向其他对象

之前的代码就可以改变为:

#include<iostream>
using namespace std;
void swap(int& a, int& b) //定义一个swap函数实现数据的交换
{
	int t = a; //定义参数t,a的值赋给t
	a = b; //b的值赋给a
	b = t; //t的值再次赋给b,使b等于原来的aint main()
{
	int x =5, y =8;
	cout<<x<<y<<endl;
	swap(x,y);
	cout<<x<<y<<endl;
	return 0;
}

以上即可完成xy的交换
注意:
引用必须初始化,一开始就要定下引用的原名,如int &b=a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值