输出内存地址的值

lululiming 2009-03-13 03:38:19
我问一个问题,C++如何输出内存地址的值,例如:
#include<iostream>

using namespace std;

int main(void)
{
int y = 1;
printf("%X\n",&y);
cout<<&y<<endl;
cout<<0x0012F3D4<<endl;

}
输出的结果是:
12F3D4
0012F3D4
1242068
后面这一行输出的不是1,这是为什么?要输出1如何写?谢谢!
...全文
387 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lululiming 2009-03-13
  • 打赏
  • 举报
回复
6楼的 输不出int值来 我试了输出的还是地址 但还是谢谢
lululiming 2009-03-13
  • 打赏
  • 举报
回复
嗯 谢谢 5楼 先结贴了 分给完了 不好意思 谢谢你!
NesTa_xP 2009-03-13
  • 打赏
  • 举报
回复
cout <<hex<< 0x0012F3D4 <<endl;
chin_chen 2009-03-13
  • 打赏
  • 举报
回复
每次运行的话,你上次得出的那个内存地址不适用的。
这个y是栈上的,每次栈分配的地址不一样的。不能以这样的方式去访问内存!
切记!
lululiming 2009-03-13
  • 打赏
  • 举报
回复
嗯 多谢提醒 thank you!
pengzhixi 2009-03-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]
这么写死了内存地址可不是啥好事情,你不能保证下一次运行的时候y还是在0x0012F3D4啊。

如果可以保证的话,要这样写。

cout < < *(int*)(0x0012F3D4) < <endl;
[/Quote]

up
sagegz 2009-03-13
  • 打赏
  • 举报
回复

#include <iostream>

using namespace std;

int main(void)
{
int y = 1;
printf("%X\n",&y);
cout <<&y <<endl;
cout <<y<<endl;
}
healer_kx 2009-03-13
  • 打赏
  • 举报
回复
这么写死了内存地址可不是啥好事情,你不能保证下一次运行的时候y还是在0x0012F3D4啊。

如果可以保证的话,要这样写。

cout<< *(int*)(0x0012F3D4)<<endl;

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧