本文共 404 字,大约阅读时间需要 1 分钟。
#includeunion FLOATUN{ unsigned int a; float b;};int main(){ FLOATUN fun; fun.b = 12.34; printf("c:%x\n",fun.a); double a = 12.34; fun.b = (float) a; printf("c:%x\n",fun.a); double c = 12.34; float *p; p = (float *) &c; printf("float c:%f\n",*p);}
输出结果
c:414570a4c:414570a4float c:584860314976236483507101602781593600.000000
只要不超出范围,double可以强转float
但用float指针会出错,因为float指针相当于只取了64位变量的32位转载地址:http://buwq.baihongyu.com/