C++·引用

首先需要注意,虽然符号一样,但C语言中的取地址运算&,和C++中的引用&有完全不一样的含义。

引用·定义

所谓“引用”,就是原变量的一个“代号”,实际上我们只有一个变量。

“常引用”,让这个引用只能读不能写。

操作

初始化

必须赋初值,不然编译不过。

int &w2 = w1;//初始化引用。
const int &w3 = w1;//初始化常引用。

以上第一行和Python中的如下语句有一样的效果:

w2 = w1

只能引用变量,不能引用常量或表达式或数组。

传参

如果不声明变量采取引用的话,默认使用的是值传递。

void add(int a, int b)//传值。
{
	a = a + b;
	//调用方的a不会变的。
} 
void real_add(int &a, int &b)//传引用。
{
	a = a + b;
	//现在实际上就是用那两个变量在操作,a,b只是它们在这个函数里的别名。
}

传引用不需要为形参分配内存,所以时间和空间上都省。再者,它比传指针要清晰。

但是,传引用的话,如果你在函数内只需要用到实参的值,可能会不小心修改真正的实参。

所以可以考虑常引用,事实上,如下代码的第二行无法通过编译。

w2 = 4;
w3 = 5;

而引用也可以作为函数的返回值。

int &SetValue() {return n};
//在函数名前加上&表示返回代码中返回值的引用,此处返回对n的引用。
SetValue() = 88;//这句将把n变为88。

不可以返回函数中局部变量的引用!因为函数结束后,其本体将被销毁,引用将失去意义。

引用可以初始化常引用,反之不然。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值