| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 468 人关注过本帖
标题:关于强制转换的问题
只看楼主 加入收藏
zhangcsx
Rank: 2
等 级:论坛游民
帖 子:12
专家分:15
注 册:2010-7-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
关于强制转换的问题
#include <stdio.h>
main()
{float f;
f=3.1;
(int)f;
printf("%d",f);
}
结果是
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <stdio.h>
main()
{float f;
f=3.1;
int n=(int)f;
printf("%d",n);
}
结果是
图片附件: 游客没有浏览图片的权限,请 登录注册

请问区别在哪里求高手讲解
2011-04-09 20:06
世界杯开始
Rank: 2
来 自:安徽
等 级:论坛游民
帖 子:7
专家分:11
注 册:2011-4-8
收藏
得分:10 
在1个程序中:你定义的f为(float)为单精度实型,但是赋值的3.1编译器默认为双精度的,故编译时出现一个警告。出现错误输出;
在2个程序中:虽然有警告,但是你输出的不是f,而是n   股结果为对的。
主意:在强制转换中,只是生成了,一个中间变量,原来变量的类型为发生变化
2011-04-09 20:46
我是传奇
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
收藏
得分:0 
学习,学习,简单的原来不简单
2011-04-10 11:44
zhangcsx
Rank: 2
等 级:论坛游民
帖 子:12
专家分:15
注 册:2010-7-26
收藏
得分:0 
回复 楼主 zhangcsx
谢谢你 了解了
2011-04-10 13:32
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:10 
第一个是强制转换,只是将精度改变为int型,你又没说给谁赋值,f的值没有变,还是float型,float型用%d输出,乱码!!!第二个和这个一样:printf("%d",(int)f);都是3
2011-04-10 13:32
快速回复:关于强制转换的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015849 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved