文档章节

&引用的本质

梦想游戏人
 梦想游戏人
发布于 2015/10/06 15:48
字数 114
阅读 117
收藏 4


引用 和指针的区别在与, 引用只是一个别名罢了,但是事实真的是这样吗?


看看下面的图,

.
明显 参数占了4字节的栈空间
.


再看看以下代码

int &s = x;
003A493D  lea         eax,[x]  
003A4940  mov         dword ptr [s],eax  

明显s是一个变量


基本可以推断引用是一个类似于 const 指针的东西,

int x = 5;

int &s = x;
const int *s2 = &x; /*等价*/


© 著作权归作者所有

上一篇: lua调用cpp函数
梦想游戏人
粉丝 41
博文 461
码字总数 132517
作品 0
成都
私信 提问
加载中

评论(2)

梦想游戏人
梦想游戏人 博主

引用来自“anykno”的评论

不是这么笼统就说引用是指针,最多只能说其的实现方式根指针一样.(传地址) 原因在于类型系统 编译器对这两种类型允许的操作是不一样的,而c的类型系统是存在于编译期的 编译后的程序是丢失了上城类型信息的 ,再使用同样的实现自然看着就是一样的,系统是一个整体,抛开编译只谈编译结果不很恰当
有道理 谢谢大神指教
anykno
anykno
不是这么笼统就说引用是指针,最多只能说其的实现方式根指针一样.(传地址) 原因在于类型系统 编译器对这两种类型允许的操作是不一样的,而c的类型系统是存在于编译期的 编译后的程序是丢失了上城类型信息的 ,再使用同样的实现自然看着就是一样的,系统是一个整体,抛开编译只谈编译结果不很恰当
C语言-传值,传地址(指针),传引用区别和联系

很多编程老手对传值,传地址,传引用的区别搞的也不会很清楚,今天我就花一点时间再次介绍一下这些概念的本质。 其实,不用分为三类,只有两类即可。传值和传引用。为什么会出现传地址(即传...

abaojin
2015/11/11
902
0
C++中引用和匿名对象的理解和本质剖析

大家对C++的引用应该都不陌生吧,抱着既要知其然,也要知其所以然的态度。 下面将按照是什么?怎么用?为什么需要?本质剖析的流程来想大家一一描述。 引用时什么? 引用其实就是给变量起的一...

沙米笔记
2016/04/10
3.5K
24
Java中常量和静态变量区别

1、非基本类型的常量一但赋值后,不能修改其引用,但可以改变引用所指对象的属性值: eg: class A { int a ;//类A的一个属性 } final A a = new A();//定义一个非基本类型的常量 a a.a=7; 这是...

小湘西
2015/09/07
118
0
如何测试一个数组是否包含指定的值

简单且优雅的方法: Arrays.asList(...).contains(...) 使用 Apache Commons Lang包中的ArrayUtils.contains String[] fieldsToInclude = { "id", "name", "location" };if ( ArrayUtils.con......

十一11
2016/02/17
13
0
myBatis association

myBatis association的两种形式 嵌套的resultMap 这种方法的本质就是把教师实体映射从association元素中提取出来,用一个resultMap元素表示。然后association元素再引用这个resultMap元素 嵌...

职业搬砖20年
2018/09/29
2
0

没有更多内容

加载失败,请刷新页面

加载更多

总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
29分钟前
2
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
32分钟前
2
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0
JAVA 利用时间戳来判断TOKEN是否过期

import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.ZoneOffset;import java.time.format.DateTimeFormatter;/** * @descri......

huangkejie
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部