C++ C++;变量的Borland地址 intmain(intargc,char*argv[]) { 整数*品脱; int iParam=423425; 品脱=&iParam; std::cout
它返回C++ C++;变量的Borland地址 intmain(intargc,char*argv[]) { 整数*品脱; int iParam=423425; 品脱=&iParam; std::cout,c++,variables,c++builder,C++,Variables,C++builder,它返回pInt位于虚拟内存中的地址。 它可以是任何地址。编译器可以将指针放在分配给进程的地址空间中的任何地址上 如果您想用十六进制而不是十进制来获取地址,则需要像这样使用: int main(int argc, char* argv[]) { int *pInt; int iParam = 423425; pInt = &iParam; std::cout<<&pInt<<std::endl;
pInt
位于虚拟内存中的地址。它可以是任何地址。编译器可以将指针放在分配给进程的地址空间中的任何地址上 如果您想用十六进制而不是十进制来获取地址,则需要像这样使用:
int main(int argc, char* argv[])
{
int *pInt;
int iParam = 423425;
pInt = &iParam;
std::cout<<&pInt<<std::endl;
system("pause");
return 0;
}
std::cout如果执行语句printf(“%x”,ipram),存储在ipram中的值将转换为十六进制并进行打印,但不会以0X开头。打印地址也会出现同样的情况。它不会以0X开头。你说的“不像0x00000”是什么意思为什么它不是十六进制,或者为什么不是0?那么asnWER相当简单——因为地址只是一个数字,默认情况下,C++将数字打印成十进制。所以,你需要使用I/O操作器,就像@ Als在答案中指出的那样。
std::cout << hex << &pInt << std::endl;