购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 表达式

视频讲解

视频讲解:资源包\Video\03\3.3表达式.mp4

3.3.1 认识表达式

看到“表达式”就会不由自主地想到数学表达式,数学表达式是由数字、运算符和括号等组成的,如图3.11所示。

数学表达式在数学当中是至关重要的,表达式在C++中也同样重要,它是C++的主体。在C++中,表达式由运算符和操作数组成。根据表达式所含运算符的个数,可以把表达式分为简单表达式和复杂表达式两种。简单表达式是只含有一个运算符的表达式,而复杂表达式是包含两个或两个以上运算符的表达式,如图3.12所示。

图3.11 数学表达式

图3.12 表达式种类

带运算符的表达式根据运算符的不同,可以分为算术表达式、关系表达式、逻辑表达式、条件表达式和赋值表达式等。

3.3.2 表达式中的类型转换

变量的数据类型转换方法有两种,其中一种是隐式类型转换,另一种是强制类型转换。

1.隐式类型转换

隐式类型转换发生在不同数据类型的量混合运算时,由编译系统自动完成。

隐式类型转换遵循以下规则:

(1)若参与运算的量的类型不同,则先将其转换成同一种类型,然后再进行运算。在进行赋值运算时,会把赋值类型和被赋值类型转换成同一种类型,一般将赋值运算符右边量的类型转换为左边量的类型。如果右边量的数据类型的长度比左边量的长,则将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。

(2)转换按照数据的精度从低到高顺序执行,以保证精度不降低。就像倒水,如图3.13所示,将小杯里的水倒进大杯,水不会流失。但是,如果将大杯里的水向小杯里倒,如图3.14所示,那么水就会溢出来。数据也是一样的,较长的数据就像大杯里的水,较短的数据就像小杯里的水,如果把较长的数值类型变量的值赋给较短的数值类型变量,那么数据就会降低级别表示。当数据长短超过较短的数值类型变量的可表示范围时,就会发生数据截断,就如同溢出的水。

图3.13 用将小杯里的水倒进大杯演示自动转换的结果

图3.14 用将大杯里的水向小杯里倒演示强制转换的结果

实例04 隐式类型转换

实例位置:资源包\Code\SL\03\04

程序运行结果如图3.15所示。

图3.15 隐式类型转换

拓展训练

(1)有一个整型变量“int a=1”,将其转换为浮点型输出,使输出结果为“1.000000”。 (资源包\Code\Try\015)

(2)某基金年化利率为3.5%,现存入10000元本金,请问一天后连本带利有多少钱?计算公式:一天收益=本金*年化利率/365。 (资源包\Code\Try\016)

2.强制类型转换

强制类型转换是通过类型转换运算来实现的,其一般形式如下:

或者

其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

例如:

表示把x转换为单精度类型。

表示把x+y的结果转换为整型。

表示一个整数。

强制类型转换后,不改变在数据声明时对该变量定义的类型。例如:

x仍为双精度类型。

使用强制类型转换的优点是编译器不必自动进行两次转换,而且程序员负责保证类型转换的正确性。

实例05 强制类型转换应用

实例位置:资源包\Code\SL\03\05

程序运行结果:

拓展训练

(1)先输出整型值65所对应的字母,再输出整型值97所对应的字母,最后根据二者的差值,推导出大写字母和小写字母之间的关系。 (资源包\Code\Try\017)

(2)一辆货车运输箱子,载货区宽2米、长4米,一个箱子宽1.5米、长1.5米,请问载货区一层可以放多少个箱子? (资源包\Code\Try\018) XiptFg/F2IMj3ERO5eqKLyKOuzIlNe98FQAYT9gwv3dnumnCqyk7Yf3Zbl9vXTqW

点击中间区域
呼出菜单
上一章
目录
下一章
×