我有代码:
int a = 1065353216;
int* pa = &a;
printf("%d", *((float*)pa)); // Выводит 0
为什么输出为0?我理解sizeof(int*) == sizeof(float*),也就是考虑了4个字节的信息,但是这个信息的二进制表示被解释为整数,那么输出应该是1065353216,有什么问题?
PS二进制表示:
1065353216: 00111111 10000000 00000000 00000000(1.0 代表 IEEE754 代表浮点数)