int test = 1;
cout << (long *) &test <<endl; //=0x7fff7370cefc
cout << (long) test <<endl; //= 1
有人可以解释第一种情况发生的情况吗? 我得到那么长的&gt; int,因此是乱七八糟的数字,但到底发生了什么?
答案 0 :(得分:3)
在这种情况下:
cout << (long *) &test <<endl; //=0x7fff7370cefc
你实际上将test
变量的地址值转换为长指针值,然后打印出来。这正是你应该得到的。