c++ - 为什么 std::dec 不将十六进制内存地址转换为十进制?
问题描述
int x = 99;
printf("&x = %p\n", &x);
printf("&x = %d\n", &x);
std::cout << &x << std::endl;
std::cout << std::dec << &x << std::endl; // problematic line (5)
std::cout << std::dec << 0x0D << std::endl;
输出是:
&x = 0x7ffe5f1d0434
&x = 1595737140 // I don't think this is correct.
0x7ffe5f1d0434
0x7ffe5f1d0434
13 // decimal of 0x0D
我不明白为什么上面的第五行不输出变量地址的十进制表示x
。我的用法std::dec
应该是正确的,因为它适用于0x0D
. 所以,我怀疑&x
可能不是我认为的十六进制数。但是,我不确定,所以想问一下。
提前致谢。
解决方案
推荐阅读
- amazon-web-services - AWS RDS 跨区域复制的主数据库延迟
- c# - 如何连接到安装在 Linux 中的 RabbitMQ
- winapi - 如果DLL不存在,您将在启动时完成而不停止的DLL的加载时间绑定称为什么
- unity3d - Unity PhotoCapture 返回“没有可用的捕获设备。” Hololens2 上的错误
- asp.net - 使用 Docker 本地开发刷新 Asp.Net 应用程序中的更改
- google-cloud-platform - 已执行阈值,但在 StackDiver 中未创建任何事件
- css - ElementUI:el-table__固定高度变化
- android - 在没有 Android SDK 的情况下在 Jenkins 上生成 APK
- java - CheckMarx - 如何修复代码注入报告?
- forms - 防止清除按钮擦除隐藏字段