| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3345 人关注过本帖
标题:printf("%d",3>2?1:1.5); 输出结果为什么是0而不是1呢?
只看楼主 加入收藏
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
汇编都忘光了。。楼上能解释一下?

学习需要安静。。海盗要重新来过。。
2008-03-12 19:37
luck3359
Rank: 1
来 自:江西
等 级:新手上路
帖 子:81
专家分:0
注 册:2008-3-9
收藏
得分:0 
在TC环境下怎么不能运行啊
2008-03-12 19:59
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
qfyzy比较爱动脑筋,不过有些东西未免有些想当然,缺乏严谨精神。
1.0用IEEE 754标准表示为:3F F0 00 00 00 00 00 00
看看我7楼反汇编后给printf压栈传递参数时传递的是什么?

下面是权威的解释:
The result types of arithmetic operators are determined by a set of rules known as "the usual arithmetic conversions".The overall aim is to  produce a result of the "largest"  operand type.For example, if a binary operator has a floating-point operand, the computation is done using  floating-point arithmetic and the result is afloating-point value.

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-03-12 20:02
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
我测试大小后的确是8字节的

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-03-12 20:04
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
和那位说的一样``结果是8个字节``那就是浮点数double``有不同的类型的数据的时候``类型会被统一成最大的那个类型``

还有当你数据的类型和你的格式不匹配也回出现想不到的结果``

我做了一下测试 :


图片附件: 游客没有浏览图片的权限,请 登录注册



在有两种类型的时候``大家最好统一输入类型或是根据情况使用强制类型转换``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-03-12 20:08
快速回复:printf("%d",3>2?1:1.5); 输出结果为什么是0而不是1呢? ...
数据加载中...
 
   



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

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