将int转换为长指针

时间:2014-05-11 12:26:16

标签: c++ c casting

int test = 1;
cout << (long *) &test <<endl; //=0x7fff7370cefc
cout << (long) test <<endl; //= 1

有人可以解释第一种情况发生的情况吗? 我得到那么长的&gt; int,因此是乱七八糟的数字,但到底发生了什么?

1 个答案:

答案 0 :(得分:3)

在这种情况下:

cout << (long *) &test <<endl; //=0x7fff7370cefc

你实际上test变量的地址值转换为长指针值,然后打印出来。这正是你应该得到的。