深入浅出的剖析C++中引用的本质

深入浅出的分析引用有的来龙去脉,进而深入汇编语言探索引用的本质

目录

1、变量名的回顾

2、引用的本质

3、特殊的引用 - const引用

4、再谈引用的本质

5、深入汇编分析

6、指针变量的引用

7、其他注意事项

8、引用与函数

9、引用的意义


1、变量名的回顾

变量是一段连续存储空间的别名

程序中通过变量来申请并命名存储空间

通过变量的名字可以使用存储空间

问题:一段连续的存储空间只能有一个别名吗?

2、引用的本质

1、C++中做了一个升级,于是引用就出来了。引用可以看作一个已经定义的变量的别名,系统不会给其分配内存空间

// 引用的语法
Type& name = var  
eg: 
int a = 4 ; 
int& b = a ;    // b为a的别名   引用定义的时候必须进行初始化  类型必须一致
b = 5 ;         // 操作b就是操作a

注:引用在定义的时候必须用同类型的变量(C++为强类型的语言)进行初始化(因为他是一个别名,是谁的别名要指定)

2、引用是一个已经定义的变量的别名,在使用的感受上看,是一个已经存在的存储空间的别名;变量的别名也就是变量的另一个表现形式,通过别名依旧可以操作变量本身。这在某种意义上类似于指针,eg:我们常用的交换函数,见下:

两者的运行结果明显是相同的

3、注:在上例,引用作为函数的形参时,不需要进行初始化,他的初始化发生在函数调用的时候

4、一个引用被声明,则该引用名就只能作为目标变量名的一个别名来使用,所以不能再把该引用名作为其他变量名的别名任何对该引用的贼值就是对该引用对应的目标变量名的赋值。

5、对引用求地址就是对目标变量求地址。

从输出的结果可以看出,a和b虽然值相同, 但存储地址不同, ba为a的引用, 和a具有同样的值和存储地址

对该引用的贼值就是对该引用对应的目标变量名的赋值。

3、特殊的引用 - const引用

语法:(只有一种)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值