如:A * pa=new A();pa为一个指针,pa中保存的数据是一个4个字节的整数如:00371090
现在想用一个变量保存这个数据,用做参数传递给其他的模块,请问这个变量应该怎么赋值?我是这样写的:
int ip=(int)pa;发现ip中的数据不等于00371090.请教高手!!
现在想用一个变量保存这个数据,用做参数传递给其他的模块,请问这个变量应该怎么赋值?我是这样写的:
int ip=(int)pa;发现ip中的数据不等于00371090.请教高手!!
ps->...就是实现这个功能的.
——————————————————
汗死,你不会是新人吧?居然连这种东西都没有理解过来。提问题的人都理解了。
就计算机来说,所谓的十六进制和十进制都只有在以字符串的形式显示的时候才有意义,而实际上所有的东西在内存中都是以二进制表示的。我实验了下:
int *a=new int;
int b=(int)a;
printf("%d\n%d\n",a,b);和
int *a=new int;
int b=int(a);
printf("%d\n%d\n",a,b);中的a和b的值都是一样的。你的做法应该是对的呀。
sizeof(A*) = 32
所以用 long 来存储指针吧,因为 sizeof(long) = 32
A* pa = new A;
long p = (long)pa;