我们已经介绍过整数在内存中的存储方式,那浮点数在内存中是怎样存储的呢?
先看一段代码:
#include<stdio.h>
int main()
{
int n = 9;
float* pFloat = (float*)&n;
printf("n 的值为: %d\n", n);
printf("*pFloat 的值为:%f\n", *pFloat);
*pFloat = 9.0;
printf("num值为: %d\n", n);
printf("*pFloat值为: %f\n", *pFloat);
return 0;
}
是不是会觉得是
9
9.0
9
9.0
运行之后:
发现我们的猜想是不对的,那为什么会是这样的结果呢,先搜索一下浮点数在内存中的内存规则:
存储一个浮点数也是占用了32字节。并且把这32字节分为了3部分。用5.5这个浮点数举例子:
S:
如