编程范式中遇到的有关问题!困扰小弟我很久了。

编程范式中遇到的问题!求救!困扰我很久了。。。
#include<stdio.h>
void main()
{
float f= 7.0;
short s=*(short*)&f;
printf("%hd",s);
}

 程序如上面所示,为什么打印出的s的值是0啊?不是应该取flaot位模式下的前16位当做s么?前16位肯定不会是0啊?不得解啊,而且视频中他也说了是非0的啊!

------解决方案--------------------
引用:
#include<stdio.h>
void main()
{
float f= 7.0;
int len = sizeof(f);
unsigned char pchar = (unsigned char*)(&f);
for(int i = 0; i< len ; i++){
   pringf("%u\t", *(pchar +i));
}
}

再对照你学的计算机组成知识,对比下就明白了。


#include<stdio.h>
void main()
{
float f= 7.0;
int len = sizeof(f);
unsigned char* pchar = (unsigned char*)(&f);
for(int i = 0; i< len ; i++){
   pringf("%u\t", *(pchar +i));
}
}

------解决方案--------------------
跟大小端有关