c++引用学习笔记


int a = 10;

int *b = &a; //指针

int &c = a; //引用

引用c相当于a的别名,修改c相当于修改a

int &c = a; 的过程“相当于”(注意不是等于,只是为了方便理解而已)以下两个步骤:

第一步:int *c_reference  = &a;  即,首先定义一个指针指向变量的地址

第二步:#define c (*c_reference);  然后将引用的名字定义为该指针的取值符号

引用的优点:

作为参数传递到子函数时不产生参数变量的副本,即不会复制参数变量的内容到函数堆栈的顶部(注意不是push压栈,具体操作请看《深入理解》)

但c++的编译器到底是如何传参的我还没有去研究,有兴趣的朋友可以去研究下,我的猜测是:“传递指针到子函数,但编译器维护着引用的使用方法,因此每次使用这个参数,将用(%exx)(相当于上面说的*c_reference)的方法来实现。”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值