C++中引用的用法以及将引用作为函数的形参

本文深入解析C++中引用的概念,包括引用的初始化、赋值、作为函数参数和返回值的使用,以及与指针的区别。通过实例展示了引用如何在函数间传递变量,实现值的交换,并介绍了引用作为函数返回值的应用。

在C++中引用就相当于是给变量起了一个别名,有点类似于指针,但是与指针又不同。

引用的初始化

int i;
i = 10;
//变量i的引用
//引用必须在创建的时候就要初始化,而指针可以在任意的时候初始化
//引用就相当于是给变量起了一个别名
int& i_r=i;   //i_r指向了变量i的内存地址

//我们可以查看地址
TRACE("the addr of i:%d\n", &i);
TRACE("the addr of i_r:%d\n", &i_r);  

输出如下所示:
在这里插入图片描述
我们会发现引用和变量名指向的是同一个地址。

引用赋值

i = 30;
int i2 = 0;
//i_r = &i2;     //错误:一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向另外一个对象。
i_r = 25;		 //i的值也会发生变化

引用作为函数的形参

我定义一个交换函数:

void swap(int& x, int& y)
{
	int tmp;
	tmp = x;
	x = y;
	y = tmp;
}

在main函数中调用:

int x1 = 100;
int y1 = 200;
TRACE("Before swap x1=%d y1=%d\n",x1,y1);

//因为形参是引用,所以形参会指向实参的地址单元,这样在函数内部对形参的修改,就会改变实参的值

swap(x1, y1);
TRACE("After swap x1=%d y1=%d\n", x1, y1);

输出如下:
在这里插入图片描述

函数返回值为引用

在.h头文件定义如下:

int s_i;
double d[20];
double& setdouble(int i);
int& setint();

实现如下:

double& CmfcusereferenceDlg::setdouble(int i)
{
	return d[i];
}

int& CmfcusereferenceDlg::setint()
{
	return s_i;
}

在main函数中调用如下:

//练习引用作为返回值
setdouble(1) = 30.0;   

setint() = 5.0;

我们可以看到成员变量值的变化。

指针和引用的区别:
1.引用必须在创建的时候就要初始化,而指针可以在任意的时候初始化
2.引用一旦初始化指向了一个对象,就不能再指向另外一个对象。而指针可以在任何时候指向另外一个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值