《C++ Primer》第五版课后习题解答

xiaoxiao2021-02-28  113

系统环境: 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。

转载请注明原文地址: https://www.6miu.com/read-22084.html

最新回复(0)