【发布时间】:2025-12-19 06:05:11
【问题描述】:
在运行这个程序时:
#include <iostream>
int main()
{
char *name = "abc";
int i = reinterpret_cast<int>(name);
std::cout<<i<<std::endl;
return 0;
}
我得到以下输出:
4202656
这个数字代表什么?是内存地址吗?但是,内存地址是什么? “abc”不是作为字符数组存储在内存中的吗?
谢谢。
【问题讨论】:
-
reinterpret_cast 运算符生成一个新类型的值,该值具有与其参数相同的位模式。您使用的是哪个编译器? g++ 给出了一个错误的转换。
-
@DumbCoder。当我输入
char *name = "abc";时,我得到 same 输出
标签: c++ memory reinterpret-cast