以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  急急急!!关于强制类型转换的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=41540)


--  作者:AlexLee
--  发布时间:12/23/2006 3:50:00 PM

--  急急急!!关于强制类型转换的问题
#include<iostream.h>
void main()
{
int i=23,float f;
f=(float)i/10;
cout<<f;
}

老师说这段程序结果应该是2.3,但我用vc6.0调试结果却是2,这是为什么,我已经强制类型转化了啊


--  作者:fangel2000
--  发布时间:12/23/2006 6:14:00 PM

--  
恩?我在VC6.0中调试了结果是 2.3 啊
你怎么调试的?
结果的确是2.3
--  作者:longshentailang
--  发布时间:12/24/2006 3:38:00 PM

--  
你的调试结果为2的原因是int i = 23后面应该是分号;
而不是逗号,
如果是逗号,则VC6.0编译器会忽略f的float定义,而把f作为是int类型,所以结果就是2了。
你改一下看看!
--  作者:fangel2000
--  发布时间:12/24/2006 5:34:00 PM

--  
呵呵,难道和编译器有关?
--  作者:卷积内核
--  发布时间:12/25/2006 8:16:00 AM

--  
warning C4518: 'float ' : storage-class or type specifier(s) unexpected here; ignored
warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored
warning C4244: '=' : conversion from 'float' to 'int', possible loss of data

以下是引用longshentailang在2006-12-24 15:38:00的发言:
你的调试结果为2的原因是int i = 23后面应该是分号;
而不是逗号,
如果是逗号,则VC6.0编译器会忽略f的float定义,而把f作为是int类型,所以结果就是2了。
你改一下看看!

是正解!
^_^


--  作者:一分之千
--  发布时间:12/31/2006 8:31:00 PM

--  
呵呵 楼主应该仔细学学语法啊》。。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms