int main(int argc, char* argv[])
{
int *pInt;
int iParam = 423425;
pInt = &iParam;
std::cout<<&pInt<<std::endl;
system("pause");
return 0;
}
为什么我的地址如1250008而不是像0x00000?
答案 0 :(得分:4)
它会返回pInt
在虚拟内存中的地址
它可以是任何地址。编译器可以自由地将指针放在分配给进程的地址空间中的任何地址。
如果您的意思是获取hex
而非小数的地址,则需要使用 I/O Manipulator ,如下所示:
std::cout << hex << &pInt << std::endl;
答案 1 :(得分:0)
如果执行语句printf(“%x”,iParam),iParam中存储的值将转换为十六进制并打印,但不会以0X开头。在打印地址的情况下也是相同的情况。它不是以0X开头。