黑马程序员技术交流社区

标题: 请教强制类型转换的问题 [打印本页]

作者: 海棠依旧2046    时间: 2015-12-23 23:05
标题: 请教强制类型转换的问题
int c;
(double)c=3/(double)2;
printf("%.2f\n",c);
为什么不能得出想要的1.50?
请求大牛赐教!
作者: Tmac90301    时间: 2015-12-23 23:46
c你在定义的时候就是一个整型数,在内存中分配了4个字节,你见过强转还可以改变一个变量的占用内存空间大小的?

仔细一点看,其实强转只只是转换值。当要使用一个变量的值,而值的类型不匹配时,会对该变量的值进行强转,而不是强转该变量。
作者: 周翔    时间: 2015-12-23 23:52
666666666666666666666
作者: 13885528457    时间: 2015-12-25 08:00
c你在定义的时候就是一个整型数,在内存中分配了4个字节,你见过强转还可以改变一个变量的占用内存空间大小的?

仔细一点看,其实强转只只是转换值。当要使用一个变量的值,而值的类型不匹配时,会对该变量的值进行强转,而不是强转该变量。
作者: 茶包子    时间: 2015-12-26 12:46
你在定义变量c为整型变量时,就确定了内存分配的是4个字节,强制转换只是临时转换,不会改变变量的值。
作者: 956251361    时间: 2015-12-26 14:38
学习了.
作者: littp    时间: 2015-12-26 15:20
简单说就是,左侧的一定要是一个想要输出的类型,右侧可以使用int来转换。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2