什么是引用

引用和指针在汇编的层次上差不多,都是存储了一个地址。

但是引用不需要像指针一样,申请一块地址用于存放另一块地址的地址值,引用没有申请那一块地址,它就是所等于的那个。

引用在我看来就是别名,就是外号。那么外号的好处是什么呢,show you code

void text0(int value)
{
    value++;
}
void text1(int* value)
{
    (*value)++;
}
void text2(int &value)
{
    value++;
}

int main() {

  int a = 5;
  text0(a);
  text1(&a);
  text2(a);
  std::cout << a << std::endl;
}

text0,很明显不能够真正的让value自增。

text1,通过传入地址值,再将地址值解引用,将值真正的自增。

text2,如果从底层来看text2和text1做的是一模一样的东西,但是,从我们程序员的角度来看,代码非常的简洁美观,主要是读起来就知道是什么意思,没有像指针一样不好读,也不好写。虽然说指针的功能肯定更加的强大,但是这种时候还是要写引用,这时候能用引用就用引用。

引用解决了指针的缺点,引用声明的时候必须有初值,防止了为空,而且引用在它的生命周期内不能够再绑定其他对象。

int& r=val;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值