- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 / 3.1算术运算与算术表达式3.2赋值运算与赋值表达式3.3 C语言特有的运算和运算符 3.1.1 基本算术运算符 + 取正值运算,或作加法运算。如+3,5+3 - 取负值运算,或作减法运算。如-3,5 -3 * 乘法运算。如5*3 / 除法运算。如5/3 % 模运算,又称求余数运算。如5%3的值为2 其中,+、-运算符作正负运算时为单目运算(只有一个操作对象),作加减运算时为双目运算(有两个操作对象)。 * * 3.1.2 算术表达式求值 用算术运算符和括号将运算对象(即操作数)连接起来的符合C语言语法规则的式子,称为C算术表达式。 所谓表达式求值,就是按表达式中各运算符的运算规则和相应的运算优先级来获取运算结果的过程。对于表达式求值,一般要遵循的规则是: (1)按运算符的优先级高低次序执行。例如,先乘除后加减,如果有括号,则先计算括号。 (2)如果一个运算对象(或称操作数)两侧运算符的优先级相同,则按C语言规定的结合方向(结合性)进行。 例2-16:求下列算术常量表达式的值。 9 %(5 – 4)* 10 + 1 根据表达式求值顺序: * * 3.1.3各类数值型数据间混合运算时的类型转换规则 对于每一种算术运算,一般要求参与运算的操作数的数据类型完全一致,经过运算后,其值也具有相同的数据类型。 如果操作数的数据类型不一致,必须先将其中一种数据类型转化为另一种数据类型,使其一致,然后进行运算,得到相应类型的值。这种转换是由系统自动进行的。 对于其他任何两个基本类型的数据参与算术运算,按照运算结果不致损失精度或溢出的原则,转换的规则按图2-13所示。 * * 例:表达式中数据类型的自动转换。 已知变量i为基本整型,变量f 为单精度型,变量 d 为双精度型,变量 e 为长整型,有以下表达式: 10 + a + i * f – d / e 试分析,该表达式运算过程中各数据类型的转换情况及最终结果的数据类型。 根据表达式中数据类型的转换规则: * * 3.1.4 强制类型转换 强制类型转换指将某一数据的数据类型转换为指定的另一种数据类型。 强制转换是用强制转换运算符进行的,强制转换表达式一般形式为: (类型名)(表达式) 强制转换运算符优先级比算术运算符高。例如: (double)a 将a转换成double类型) (int)(x + y) 将x + y的值转换成整型,即取整数部分 (float)x + y 将x转换成单精度型 例:求下面算术表达式的值。 x + a % 3 * ( int ) ( x + y ) % 2 / 4 设x = 2.5,a = 7,y = 4.7,上式的运算过程为: * * 3.2.1 简单赋值运算及其表达式 1.赋值运算符 所谓赋值,就是将某一表达式的值传送给指定变量的操作。 赋值运算符就是前面用过的赋值符号“=”。用赋值运算符连接起来的式子称为赋值表达式。赋值表达式的一般形式为: 变量 = 表达式 左边只能取变量,不能为常量或表达式;右边可取变量、常量或任意表达式。 例如:x = 5; y = (float)5 / 2; * * 2. 赋值表达式求值。 任何一个表达式都有一个值,赋值表达式也不例外。被赋值变量的值,就是赋值表达式的值。 例如,a = 5这个赋值表达式,变量a的值5就是表达式的值。 在混合运算表达式中,赋值运算的优先级低于算术运算;其结合性为“从右向左”,这同算术运算相反,与大部分单目运算相同。 求表达式: x = y = z = 5 a+(x = 1)+(y = 2) 根据赋值运算规则: * * 3.2.2赋值转换 如果赋值符两侧的数据类型不一致,在赋值时要进行数据类型转换。具体措施如下: (1)将实型数据赋值给整型变量,舍弃小数部分。 (2)将整型数据赋予实型变量,数值不变,但将以实数形式存放到实型变量中,即增加小数部分(小数部分的值为0)。 (3)将一个double 型数据赋值给float变量,如果没有超出float数据的表示范围,则截取double型数据的前面7位有效数字,存放到float型变量中。 (4)将一个float 型数据赋给double 变量,数值不变,有效位数扩展到16位,然后赋值。 (5)不同整型之间数据相互赋值,视情况或截断,或扩展。 * * 3.2.3 复合赋值运算 (1)复合赋值运算符。 复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的。 复合赋值运算的一般格式为: 变量 双目运算符 = 表达式 如:a += 3 读作“a加赋值3”,等价于:a = a + 3。 x %= 3 等价于:x = x % 3 x
文档评论(0)