C++->引用

引用概念

引用:给已存在的变量取的别名
用法:引用类型& 引用名 = 实体名
exp:int& ra = a(假设a已经定义)

特性

  1. 引用时在定义s时必须初始化
    int& ra;:错误
    int& ra = a正确
  2. 一个变量可以有多个引用
    定义实体:int b = 1;
    定义引用:int& r1 = b; int& r2 = b; int r3 = b 合法
  3. 引用只能引用一个实体
    int& ra = a;
    int& ra = b;错误:引用ra已经有引用实体
  4. 引用和实体的类型必须一样
    这一点在下面陈述

常引用

const int a = 10;
int& ra = a; //错误,因为a是一个常量,其内容不能改变
const int& ra = a //正确

//同样
int& rb = 10;  //错误,b也是一个常量
const int& rb = 10;

总结:引用与实体的类型必须一致,实体是常量,引用也要是常量(const)类型的。

引用举例

作参数:
在这里插入图片描述
在swap函数中的形参x,y是两个引用,通过这两个引用可以达到不传地址也能在函数里面改变函数体外变量的值得效果。

做返回值:

int& TestFun(int& a){
	a ++;
	return a;
}
//注意:引用的生命周期一定要比函数的生命周期长,否则在函数返回的时候,引用就已经被释放
//例如:

int& TestFun2(int &a){
	int b = a + 1;
	return b;
}
//这里的b是栈上的空间,在函数返回时已经被释放

传值 传址 传引用的比较

传值与传引用:由于传值有一个实参到形参的临时拷贝过程,而引用不存在这个过程,因此在时间和空间上,传引用都要优于传值。当参数的占用空间较大时更为明显。

传址与传引用:直接给出结论,传引用比传址更安全。用引用的特性可以解释这一点:

  1. 引用在定义时必须初始化,而指针不用。
  2. 引用在引用一个实体后,不能再引用其他实体。而指针可以在任何时候指向任何一个同类型的实体。
  3. 访问实体方式时,指针需要显示解引用,而引用由编译器处理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值