免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2019 | 回复: 6
打印 上一主题 下一主题

C语音中i=f=l=d=20/3,d和f的值为什么是6.0? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-12 14:52 |只看该作者 |倒序浏览
double d;
float f;
long l;
int i;
i=f=l=d=20/3;
printf("%d %ld %f %f\n",i,l,f,d);

执行结果是 6 6 6.000000 6.000000 ?
这值是如何赋给各变量的?
=的执行顺序是什么?

d为什么不是6.666666,而是6.000000?

小弟是新兵,请各位帮助分析。

论坛徽章:
0
2 [报告]
发表于 2004-12-12 23:17 |只看该作者

C语音中i=f=l=d=20/3,d和f的值为什么是6.0?

依赖编译器

论坛徽章:
0
3 [报告]
发表于 2004-12-13 09:08 |只看该作者

C语音中i=f=l=d=20/3,d和f的值为什么是6.0?

改成
i=f=l=d=20.0/3;
试一试

论坛徽章:
0
4 [报告]
发表于 2004-12-13 09:43 |只看该作者

C语音中i=f=l=d=20/3,d和f的值为什么是6.0?

改成 i=f=l=d=20.0/3;
或者 i=f=l=d=double(20.0/3)应该也行
sarahbrightman 该用户已被删除
5 [报告]
发表于 2004-12-13 11:42 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2004-12-13 13:12 |只看该作者

C语音中i=f=l=d=20/3,d和f的值为什么是6.0?

依赖于编译器。呵呵

论坛徽章:
0
7 [报告]
发表于 2004-12-13 14:47 |只看该作者

C语音中i=f=l=d=20/3,d和f的值为什么是6.0?

依赖于编译器吗?应该不依赖于吧。
首先计算,20/3 = 6
然后是 6 ->; 6.0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP