#include <cstdio>
#include <iostream>
typedef unsigned char * bytePointer;
void showByte(bytePointer bP,size_t length)
{
size_t i=0;
for(;i<length;++i)
{
printf("%.2x ",bP[i]);
}
printf("\n");
}
void showInt(int x)
{
showByte(bytePointer(&x), sizeof(int));
}
void showFloat(float x)
{
showByte(bytePointer(&x), sizeof(float));
}
void showPointer(void * x)
{
showByte(bytePointer(&x), sizeof(void*));
}
int main(int argc, const char * argv[])
{
int x=12345;
float f=float(x);
int *p=&x;
printf("%p",p);
printf("\n");
std::cout<<static_cast<void*>(p)<<std::endl;
showInt(x);
showFloat(f);
showPointer(p);
}
为小端法表示,低位在前,输出结果为指针存储的地址。
输出结果
0x7fff5fbff7ac
0x7fff5fbff7ac
39 30 00 00
00 e4 40 46
ac f7 bf 5f ff 7f 00 00