引用总结

首先看下面代码:

 int main()
        {
        	int a = 10;
        	int &b =a;
        	b = 20;
        	std::cout << a << std::endl;
        	std::cout << b << std::endl;
        }

程序的运行结果结果是20,20。而不是10,20。只是为什么呢?

这里我们就要讲一下引用的概念了,引用是变量的别名,具体点就是引用是变量内存单元的别名,其底层是通过指针来实现的。

那么引用都有哪些用法呢?下面让我们来研究研究!

先来看看下面代码是否正确

int &b;				//1
int &b = 10;		//2

其中1是错误的,未对引用进行初始化,2也是错误的,不能引用常量,因为常量属于系统内置数据,存储在寄存器上,并没有存储在内存单元上,所以无法对其引用。

总结一下引用的特点就是

  1. 引用一定要初始化
  2. 不能引用无法取地址的值
  3. 引用不能改变
  4. 引用只能使用引用变量所引用的变量(内存单元)

值得注意的是,不能返回局部变量的地址或引用

除此之外,使用引用时,引用不参与类型,但是引用的使用依赖于类型。而且,使用实例化对象最形参时,使用引用可以减少系统调用构造函数和析构函数的次数,从而提高函数效率。

const & 称为常引用,常引用的特点如下:

  1. 常引用可以引用无法取地址的值
  2. 无法取地址的值生成临时量
  3. 常引用可以引用临时量

最后,引用还可以将临时对象提升为和引用变量相同的生存周期,从而提升临时对象的生存周期。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值