《C++ Primer》第五版课后习题解答_第四章(3)(34-38)

本文详细解析了C++中不同类型之间的转换规则及特定表达式的运算过程,包括整型、浮点型、字符型等基本类型的转换,以及通过static_cast进行类型转换的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统环境: windows 10 1703

编译环境:Visual studio 2017


4.34

(a) fval 转换成 bool

(b) ival 先提升成 float,和 fval 相加后提升成 double 赋给 dval

(c) cval 提升成 int,和 ival 相加后再提升为 double 和 dval 相加


4.35

(a) 发生了。‘a’ 先提升为 int 和 3 相加,在转换成 char 赋给 cval

(b) 发生了,ival 先提升为 float,和 1.0 相乘,然后转换成 unsigned int,和 ui 做减法,其结果转换成 float 赋给 fval

(c) ui 转换成 float 和 fval 相加,其结果转换为 double 赋给 dval

(d) ival 提升成 float 和 fval 相加。其结果再提升为 double 和 dval 相加。再将其结果转换为 char 赋给 cval


4.36

i *= static_cast<int>(d)

4.37

// a (下方的表达式不能拆分成两个表达式,会报错)
pv = static_cast<void*>(const_cast<string*>(ps));

// b
i = static_cast<int>(*pc);

// c
pv = static_cast<void*>(&d);

// d
pc = static_cast<char*>(pv);

4.38

先计算 (j / i) 的值(若 i, j 均为 int,则计算结果舍去小数成为 int 类型),将结果强制转换为 double 类型,然后赋给 slope。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值