此文缘起我看了这篇文章:
http://blog.csdn.net/newslxw/archive/2006/08/08/1038972.aspx 还记得当年读书时, 牛牛的C++老师告诉我: "引用, 其实就是别名, 与其所引用的对象完全等价". 可是, 我还是有这点疑问: "等价的含义, 是指的什么? 难道是说在最底层的实现上两者直接就是使用的同一个内存位置吗? " 比如下面的这段代码:
intmain()
...{
inta=100;
int&b=a;
int*c=&a;
b=99;
a=88;
b=77;
*c=66;
return0;
}
经过汇编后, 变成了这样:
main:
leal4(%esp),%ecx
andl$-16,%esp
pushl-4(%ecx)
pushl%ebp
movl%esp,%ebp
pushl%ecx
subl$16,%esp
.LCFI5:
movl$100,-16(%ebp) ; ebp-16 为变量 a 的地址leal-16(%ebp),%eax
movl%eax,-12(%ebp) ; 将a的地址放在 ebp-12 地址处
leal-16(%ebp),%eax
movl%eax,-8(%ebp) ; ebp-8是指针c变量, 此句是给指针c赋值
movl-12(%ebp),%eax ; 给引用b赋值前, 先把存在 ebp-12 的 a 的地址取到eax中
movl$99,(%eax) ; b = 99
movl$88,-16(%ebp)
movl-12(%ebp),%eax ; 此处给引用b的赋值, 与前面一样, 也是先取a的地址
movl$77,(%eax)
movl-8(%ebp),%eax ; 给*c赋值前, 先取c地址
movl$66,(%eax) ; 此处执行 *c = 66
movl$0,%eax
addl$16,%esp
popl%ecx
popl%ebp
leal-4(%ecx),%esp
ret
由此可见, 引用, 在具体实现时, 会申请一个临时空间(栈内空间), 目的是存放被引用对象的地址. 当使用引用变量时, 其实就是对被引用对象作了一次间接寻址. 而从汇编代码中来看, *c 确实与 b 在使用时的汇编代码一样, 都是先取地址, 再将值存入此地址. 所不同的, 只是在c++层面, 作为如 b 这样的引用类型变量, 只可在初始化时赋值, 且只能赋值一次.
分享到:
相关推荐
小品:五兄弟改变.doc
小品:五兄弟改变(1).doc
2021最新班主任资料包-小品:五兄弟改变.doc
搞笑小品:中石油的六大禁令知识竞赛年会精品模板文案.doc
标题中的“2021最新班主任资料包-小品:五兄弟改变.rar”是一个压缩文件,通常用于存储多个相关的文档或资源。这个标题暗示了这是一个针对班主任工作的资源集合,其中包含了一个名为“五兄弟改变”的小品剧本。这个...
《优秀资料(2021-2022年收藏)小品:我的未来不是梦适合小学高年级和初中表演.doc》这一文档,通过幽默诙谐的小品形式,向我们生动展示了学习英语的实用性及其在生活中的重要性,同时传递了努力学习、珍惜时间、...
【标题】:“初中语文文学讨论名著导读纯棉小品:一份女人成长的备忘”主要探讨的是女性成长过程中的心理变化、情感体验以及生活智慧。这类文学作品以平实的语言和细腻的情感描绘,深入剖析女性在不同阶段的成长经历...
在C++编程语言中,有一些常见但容易让人迷惑的概念和陷阱,这些在“C++陷阱小品-有趣易懂”系列中被Solmyr详细探讨。这个系列的文章旨在通过轻松幽默的方式,帮助开发者理解并避免在C++编程过程中遇到的问题。 1. *...
和C++名家对话风格相似。专题讲座,一个讲座一个故事,寓教于乐。文笔不错。
比如,一个以搞笑小品形式呈现的“竞选安全形象大使”年会精品模板,就是一种创新而有效的安全教育方式。 在这个小品中,通过幽默的方式展示了安全教育的必要性。它让我们明白,无论是在家庭生活还是公共场所,甚至...
在一家企业的年会上,一场别开生面的安全知识竞赛小品表演正在火热进行中,它以幽默诙谐的方式展现了中石油的六大禁令,不仅为现场观众带来欢笑,也深深植入了安全知识的重要性。通过这场精彩的小品,我们看到了安全...
此外,C++11及以后的版本引入了许多新特性,如右值引用、lambda表达式、自动类型推断(auto关键字)和移动语义等。这些现代C++特性使得代码更加简洁、高效,小品文可能通过实例来解释它们的用途和优势。 在面试和...
这个文档实际上是一个搞笑小品剧本,虽然标签和部分内容没有提供具体的技术信息,但是我们可以从中提炼出一些关于剧本创作、角色设定以及表演技巧的知识点。 1. **剧本结构**:小品剧本通常包含对话、动作描述和...
小品剧本:言传身教.doc
C++ 小品文集
### Solmyr C++小品文系列-菜鸟成长为大师 #### 知识点解析: **1. 字符串处理** - **字符串定义与存储**: - 在C/C++中,字符串通常被视为以`\0`(空字符)结束的字符数组。这意味着字符串是由连续的字符构成...
关于“学校环境”,小品展示了校园为学生营造的稳定、和谐的学习氛围。学生们在这样的环境中学会了团结协作、相互尊重,同时学校领导的积极作为也为学校教育质量的提升奠定了基础。 在“学习进步”方面,小品中角色...
小品剧本校园搞笑幽默-曾经的校园精品小品剧本 根据提供的文件信息,我们可以总结出以下知识点: 1. 校园幽默小品剧本的重要性:小品剧本《同桌的你》展示了校园幽默的重要性在于它可以让观众欢笑和回忆过去的美好...
特别是在各种文艺演出中,小品以其独特的魅力成为了不可或缺的一部分。今天,我们将深入探讨一个校园小品剧本——《如此相亲》,一个被标记为“最搞笑幽默”的作品。通过分析这个剧本,我们将了解到小品剧本的文学...
这个文档虽然标题为“小品剧本:言传身教精选”,但它并非与IT技术直接相关,而是一个关于家庭教育和社会生活的故事脚本。不过,我们可以从中提取一些普遍适用的生活道理和教育理念: 1. **言传身教**:剧本中的...