续篇:浮点数在内存中存储的一道实战例题

在C语言数据在内存中的存储一篇中我引出了这样一道引例,并由此介绍了浮点数是如何在内存中存储的,现在我们理论成立,实践开始,借助浮点数的存储方式来重新审视这道题:

#include<stdio.h>
int main()
{
	int n = 9;
	float* pf = (float*)&n;
	printf("n的值为:%d\n", n);
	printf("*pf的值为:%f\n", *pf);
 
	*pf = 9.0;
	printf("n的值为:%d\n", n);
	printf("*pf的值为:%f\n", *pf);
	return 0;
}

首先,第一个n为9毫无疑问,将一个整型以整型类型打印,二者相匹配所以打印出9.

对于pf来说,它是一个类型为float*的指针变量,它会站在float的角度看待内存中的n.

n=9;

//00000000 00000000 00000000 00001001 ——原码

//pf会以浮点数的角度划分n:

//0 00000000 00000000000000000001001

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值