- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.4.9 条件运算符 当在语句中嵌入条件运算符时,通常需要用圆括号把条件运算符括起来,例如,经常使用条件运算符根据条件输出不同的值: cout (i j ? i : j); // 正确:输出i、j中较小者 cout (i j) ? i : j; // 输出1或0 // 语法错,cout和int不可比较,等价于:(cout i) j ? i : j; cout i j ? i : j; cout(ij); //输出1或0 //测试cout的返回结果,根据结果计算表达式i或者表达式j cout ? i : j; 2.5 类型转换 C++允许数据值从一种类型转换成另一种类型。数据类型转换有两种方式:一种是隐式转换(也称自动转换),另一种是显式转换(也称强制类型转换)。 1.隐式类型转换 隐式类型转换是由系统自动进行的,它是在运算时对转换对象的运算值进行转换,而不改变该对象在存贮单元中的内容和类型。隐式类型转换遵循以下规则: 若参与运算量的类型不同,则先转换成同一类型,然后再进行运算。 转换按数据长度增加的方向进行,以保证精度不降低。即按照“向高看齐”的原则,对“较低”的类型进行提升。 2.5 类型转换 横向向左的箭头表示运算时必定的转换;纵向向上的箭头表示当运算对象为不同类型时转换的方向。注意:箭头的方向只表示数据类型级别的高低,由低向高转换。 2.5 类型转换 例如: int?i = 6; char?ch = b; float?f = 8.36f;? double?df = 9.63; 表达式ch * i + f * 2- df 的计算过程为: 将ch转换为int型,计算ch * i = 98 * 6 = 588; 将f转换为double型,计算f * 2 = 8.36 * 2 = 16.72; 将ch * i转换为double型,计算588 + 16.72 = 604.72; 计算604.72 – df = 604.72 - 9.63 = 595.09。 2.5 类型转换 int?i; float?f = 3.32f; // 先计算f * 2 = 3.32 * 2 = 6.64,然后取整数部分6赋给左值i??,i = 6 i = f * 2 在赋值表达式中,当左值表达式的类型与右值表达式的类型不同时,先计算出右值表达式的值,然后将其转换为左值的类型后赋给左值。例如: 2.5 类型转换 2.强制类型转换 显式类型转换又叫强制类型转换。C++提供了一种强制类型转换运算符,可将一种类型的数据强制转换为另一种类型的数据。强制类型转换的格式为: (类型) 表达式 或 类型 (表达式) 先求表达式值,然后将该值转换为由类型名所指定的数据类型。 2.5 类型转换 例如: int a; float x, y; (double) a // 将整型变量a的值强制转换成双精度型 int (x + y) // 将实型变量x、y的和强制转换成整型 // 将实型变量x、y的值转换成整型后作求余(%)运算 (int) x % (int) y 再看以下两例: // 将整数5强制转换为float型,然后再除以3,结果为1.66667 (float) 5 / 3 // 先计算5 / 3 = 1,然后将1强制转换为float型,再除以2,结果为0.5 float (5 / 3) / 2 强制类型转换运算符的优先级高于算术运算符。 2.5 类型转换 说明: 强制类型转换是一种不安全的转换。当高类型的数据转换为低类型的数据时,数据精度会受到损失。例如: float?sum = 8.96f; int?num; num = (int) sum; // num的值为8,精度受到损失 2.5 类型转换 强制类型转换也是在运算时对转换对象的运算值进行转换,而该对象在存贮单元中的内容和类型并没有改变,即强制类型转换是一种暂时的行为。例如: double?width = 2.36, height = 5.5; int?area1; double?area2; area1= int (width) * int (heigth); //?area1的值为10 area2 = width * height; //?area2的值为12.98 2.6 表达式和语句 1.表达式 表达式由一个或多个操作数通过运算符组合而成,其目的是计算并求得一个结果值,操作数可以是常量、变量、函数,也就是说:变量、常量、函数和各种运算符组合构成表达式,例如,计算圆的面积: area = pi * r * r; 2.6 表达式和语句 2.语句 表达式加上分号“;”构成语句,语句是C++程序的基本
您可能关注的文档
- AutoCAD2008实例教程 吕长恩 第5章 文本与表格新.ppt
- AutoCAD2008实例教程 吕长恩 第7章 块与外部参照新.ppt
- AutoCAD2008实例教程 吕长恩 第8章 绘图布局与图形输出新.ppt
- AutoCAD2008实例教程 吕长恩 第9章 二维机械零件绘制实例新.ppt
- AutoCAD2008实例教程 吕长恩 第10章 三维绘图基础新.ppt
- AutoCAD2008实训教程 蔡伟美 第2章 AutoCAD基本绘图方法新.ppt
- AutoCAD2008实训教程 蔡伟美 第4章 文本与表格新.ppt
- AutoCAD2008实训教程 蔡伟美 第5章 显示控制与查询功能新.ppt
- AutoCAD2008实训教程 蔡伟美 第6章 形体投影及三视图新.ppt
- AutoCAD2008实训教程 蔡伟美 第7章 形体的视图表达与剖视图新.ppt
文档评论(0)