社区
C语言
帖子详情
如何取得引用本身的内存地址?
niefuhua
2003-03-14 12:25:17
int i=8;
int& h=i;
我如何才能取得h本身的地址呢?
...全文
80
13
打赏
收藏
如何取得引用本身的内存地址?
int i=8; int& h=i; 我如何才能取得h本身的地址呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kicool
2003-03-14
打赏
举报
回复
#include <iostream.h>
void main(){
int i = 8;
int &h = i;
int *p = &h;
cout<<p<<" @@ "<<&i<<endl;
}
to: sinman(罪人)
两者结果一样.
sinman
2003-03-14
打赏
举报
回复
int i = 8;
int &h = i;
int *p = &h;
cout<<p<<endl;
wengzhong
2003-03-14
打赏
举报
回复
引用不是值,不占存储空间,引用只能声明,不能定义.
justformat
2003-03-14
打赏
举报
回复
引用本身没有地址的
wengzhong
2003-03-14
打赏
举报
回复
to Jinglihui(雪狐)
能不能把你的测试方法说一下,我也试一下!!
liu_feng_fly
2003-03-14
打赏
举报
回复
引用虽然是用指针来实现的,但引用毕竟不同于指针。指针的指针是二重指针,但是引用的引用却还是引用本身,不会有二重引用出现。可能编译器在对待引用的时候做了很多手脚,而不仅仅是把引用翻译成指针。
Jinglihui
2003-03-14
打赏
举报
回复
kicool(多米诺)
int i = 8;
int &h = i;
int *p = &h;
cout<<p<<" @@ "<<&i<<endl;
}
to: sinman(罪人)
两者结果一样.
------------------------------------
int *p=&h;
这一句取的不是引用h的地址
这条语句实际执行的是用i的地址初始化p
count<<p<<"@@"<<&i<<endl;执行的结果当然就是相同了
Frank001
2003-03-14
打赏
举报
回复
int i=8;
mov dword ptr [ebp-4],8
int& h=i;
lea eax,[ebp-4]
mov dword ptr [ebp-8],eax
int m_i;
m_i=i;
mov ecx,dword ptr [ebp-4]
mov dword ptr [ebp-0Ch],ecx
m_i=h;
mov edx,dword ptr [ebp-8]
mov eax,dword ptr [edx]
mov dword ptr [ebp-0Ch],eax
Jinglihui
2003-03-14
打赏
举报
回复
引用也是占内存的,引在在内部存放的是一个对象的地址,它是该对象的别名。
详细见<<C++ primer>>
我用BCB做过测试了,引用有它自己的地址,它的值是对象的地址
Jinglihui
2003-03-14
打赏
举报
回复
支持 topikachu(皮皮)
皮皮,干嘛全说出来啊,我都没有话要说了!:)
topikachu
2003-03-14
打赏
举报
回复
引用只能被赋值.改变引用就是改变原先的变量.不可能有悬空的引用,所以在逻辑上讲,在c++中引用不象变量,指针或者类一样会占有实际的存储空间
在实际的编译器实现中,引用往往会用指针来实现,所以在物理代码中你也找不到引用的"影子"
DanielWYO
2003-03-14
打赏
举报
回复
TO wengzhong(翁仲)
引用虽然不是值,但在部分地方会发生引用产生值的情况,常常在类型的转换中.
也就是说,甚至可能,引用也会有自己独占的地址.
caizzrr
2003-03-14
打赏
举报
回复
h是不的别名,h的地址和i的一样
修复“错误提示内存不能为read”的工具
突然‘咚’的一声 提示 内存不能为read 这个问题我以前也遇到过不知道怎么解决 现在终于有办法了!呵呵! 我们就看看是什么原因引起的吧,另外附送一个小工具修复见下面附件 总结下大概以下9个原因 1、驱动不...
“0x????????”指令
引用
的“0x????????”内存。该内存不能为“read或written解决方法
“0x?...指令
引用
的0x00000000内存,该内存不能written”,然后应用程序被关闭。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的常见原因。 一、应用程序没有检查内存
“0x????????”指令
引用
的“0x????????”内存。该内存不能为“read”。原因及解决办法
运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令
引用
的“0x????????”内存。该内存不能为“read”。 “0x????????”指令
引用
的“0x????????”内存,该内存不能为“written”...
C++
引用
占用内存?
2,
引用
不是值不占内存空间。 3,
引用
必须在定义时赋值,将变量与
引用
绑定。 那你有没有想过,上面的定义正确吗?编译器是如何解释
引用
的? 这里先给出
引用
的本质定义,后面我们再进一步论证。 1,
引用
实际是...
0x????????”指令
引用
的“0x????????”内存。该内存不能为“read
前段日子经常遇到了该内存不能为“read”的错误提示。纳闷死了!!现在找到答案,就把他收藏,希望以下文章能对大家有所帮助。 运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章