C++中的引用

引用主要用于传递函数的参数,还可以用作函数的返回类型。

引用就是被引用对象的别名,两者本质上是同一个对象。在定义引用的同时必须初始化,被引用的对象不能是常量或右值表达式。

引用和指针都是通过地址间接访问数据,但不同的是:引用不能独立存在,引用不占内存空间。

由于引用和被引用的对象本质上为同一对象,故对引用重新赋值也即对被引用的对象重新赋值。所有对引用的操作实际上都是对被引用对象的操作。

引用自从初始化那刻起,就与被引用对象同生共死永不分离,山无棱天地合也不与君绝。

只要是变量就可以建立对它的引用,包括指针。其语法如下:

int m=3;
int* p=&m;
int*& r=p;
p是指向m的指针,r是p的引用,当然也是指向m的指针。

但是引用本身不是变量,故不能建立引用的引用,也不能定义指向引用的指针。另外,创建引用数组也是违法的,也不能定义void类型的引用。

引用作为函数参数,主要有三个用途:

1)作为输出参数,返回多个值。

2)作为输入参数,同时也作为输出参数,保留函数内部对参数的修改。

3)作为输入参数,传递大对象,提高参数传递的效率。(此时为防止对输入参数的修改经常把输入形参类型设置为常量引用)。

引用类型也可以作为函数的返回类型,此时不需要生成数据的副本,效率高。然而,不要返回局部变量或对象的引用,这和不要返回指向局部变量或对象的指针是一个道理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值