关于2-18的一点疑问

关于2-18的一点疑问

http://img1.sycdn.imooc.com//climg/5ba25ebc0001236717620677.jpg

D选项应该如何理解?int a=6.6,这其中有隐形转化,将double类型强制转化为整形,此时a的值是6,但是在输出时候是(double)6,这里也有一个转化过程,就是将整形的6转换成双精度的6.0,所以输出的时候应该是6.0吧,而不应该是6,不知道我这样的理解对不对?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

5回答
FANGYUAN_ 2018-11-01 09:20:33

先尝试一下

double a = 6;
cout << a << endl;
int b = 6.6;
cout << (double)b << endl;
double c = (double) b;
cout << c << endl;

尝试之后 你就可能理解了


算法请爱我emmm 2018-09-27 16:33:57

你的理解没有错,但是他题目的意思是输出的结果6.0和6都是一样的,都是数值为6的数字

慕盖茨6136298 2018-09-21 11:46:15

但我做过实验,结果是6哦

Tender10 2018-09-20 15:04:31

1、是可以进行隐式转换,但并不是直接转换啊,直接转换的意思就是直接强制转换的意思。

2、

http://img1.sycdn.imooc.com//climg/5ba3465e00010cb708080582.jpg

运行结果确实是0.5,不知道你是怎么写的呢,运行的结果是0。

Tender10 2018-09-20 10:23:02

(double)a是没有效果的,int类型不能直接转换成double类型的。一般整型计算想等到double类型的结果,可以参考如下代码:

int a=1;
int b=2;
double d=(double)a/b;
cout<<d<<endl;


  • 提问者 kyb0 #1
    您说int类型的数据不能直接转化为double数据,我觉得不对吧,在讲义里面有讲到一种隐式转换,就是由低类型的向高类型的转换
    2018-09-20 13:58:42
  • 提问者 kyb0 #2
    您这里列举的例子是从低类型int向高类型double转换,一般隐式转换就可以了,您这里采用的是强制类型转化的形式,(类型名)(表达式),我觉得不符合语法逻辑,因为int类型转换为double类型计算机内部就完成了隐式转换了,不知道我的理解对吗
    2018-09-20 14:05:13
  • 提问者 kyb0 #3
    我运行了一下你这的代码的结果,输出的是0呀,如果是double型,不应该输出是0.5吗
    2018-09-20 14:17:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       593    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师