为什么整数上的 std::hex 和 void* 会产生相同的值
Why do std::hex and void* on an integer result in the same value
例如在C++中:
int number = 10;
cout << std::hex << number << endl;
cout << (void *)(int)number << endl;
为什么两个输出具有相同的十六进制值?
这里的(void *)(int)number
到底是什么意思?
我相信,这是实现定义的行为。
实际上:
- 指针的格式化输出倾向于给出它们指向的地址。
- 在机器码级别,指针倾向于存储为表示内存地址的 32 位或 64 位整数。
- 强制转换倾向于通过简单地将机器语言整数重新解释为表示指针来实现。
相关文章:
- std::当在256字节边界上写入整数时,流的奇怪行为
- 什么是自动 t1=std::make_tuple(case1==case2,整数)的值
- 为什么初始化 std::vector 时不能使用模板整数?
- 如何检测 std::vector::emplace_back 上的隐式转换损失整数精度
- std::带有颜色和标题的 clog 包装器无法正确打印整数
- 从 std::string 转换为 const 无符号整数
- 为什么这个程序接受整数和字母数字输入并打印它们? C++ 中的 std::string 也采用整数值吗?
- 我想使用 std::stoi 函数在 cpp 中将字符串转换为整数,因为我想在字符串中找到不同数字的总和(在下级酶中)
- 如何在满足常量表达式的同时将整数传递给指针,传递给 std::array<double、integer>?
- 在 2D 整数矢量上使用 std::fill
- C++ - 重复 std::getline() 作为用户整数输入?
- 将 std::error_code 与整数进行比较
- std::reduce 似乎将结果转换为整数
- 将整数附加到 std::wstring 会给出错误
- 如何使用 C++ std 计算整数集合的前导零和尾随零
- 如何将带有前导零的整数插入到 std::string 中
- 如何使用 std::multimap 将整数键映射到两个用作多维数组坐标的整数值(对于井字)?
- 将 std::sort 与指向整数变量的指针一起使用会产生意外的输出
- 如何打印包含整数和整数集的std::映射
- C++:如何使 std::unique_ptr<int> 指向一个新整数?