散打比赛怎么报名:c的强制转化
来源:百度文库 编辑:高校问答 时间:2024/10/06 16:53:27
float m,n;
scanf("%f",&m);
n=(int)m;
执行这个后,m,n分别为什么?帮我举个例子
scanf("%f",&m);
n=(int)m;
执行这个后,m,n分别为什么?帮我举个例子
m,n 仍然为float型。。。
n=(int)m;只是把m的值强制转为int型。。。
但变量所以空间性质没有变化。。
也就是说他们仍是实型
就上个朋友的回答是错误的
输入5.1
结果是: m=5.1 n=5.0
if
你输入 5.1 m = 5.1 n =5
则
执行这个语句后
n=(int)m;
把m 强制转化为整形变量了
m=5
在把m的值赋值到n
因为n为浮点数
则
n=5.0
你输入 5.1 m = 5.1 n =5
n=5.000000
float的精度为6
这个过程中,进行了两次转换,(int)m把是在系统中产生了一个暂时的int类型的值,但是并没有改变m的值,然后把这个暂时的int类型的值赋给n的时候又把其转换为了float型的。