C++数据类型和表达式.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 除法运算符:若两边的操作数均为整数时,则做整除运算,即只取运算结果的整数部分。 %(取余):计算两个整型操作数相除的余数。所得余数的符号与左操作数相同。 * 以上三点也适用于其它表达式。 * 注意:自动类型转换并不能保证运算结果正确。例如-3+2u的结果并非-1,而是unsigned类型的数据4294967295。 * 1、先算表达式的值,然后将表达式的值的类型强制转换为由类型名type规定的数据类型。 2、type只对最靠近它的量起作用。 * 1、D 2、B 3、D * 4、B 5、1 1 1 * 6、C 7、C 8、B * 1 1 -1 -1 余数的结果符号与被除数的符号相同 * 产生一个[a,b]间的随机整数:rand()%(b-a+1)+a 赋值运算符与赋值表达式 赋值运算符:左结合、双目,其优先级比算术运算符、关系运算符和逻辑运算符的优先级低。 赋值表达式: 变量 = 表达式 作用:将表达式的值赋给变量。 不同编译器对赋值表达式的值的不同处理,可能使同一表达式在不同编译器中的运行结果不同。 举例。设a、b均为整型变量: a=3+5 ;b=a=3+5 ;a=5+(b=5) a=5+b=5(错) 3.3 运算符与表达式 +=、-=、*=、/=、%=、=、=、=、^=、|= 复合赋值表达式: 变量复合赋值运算符表达式 等价于: 变量=变量运算符(表达式) 作用:简化书写,提高表达式的目标代码质量。 举例: a+=b-5 等价于 a=a+(b-5) a*=b-c/2 等价于 a=a*(b-c/2) 3.3 运算符与表达式 复合赋值运算符 数据类型转换 不同类型的数据做混合运算时,应先转换成同一类型,再做运算。 数据类型转换方法: ①自动类型转换(也称隐式类型转换):由系统按类型转换规则自动完成。对于赋值与非赋值表达式来说,自动类型转换规则是不同的。 ②强制类型转换(也称显式类型转换):由程序员在程序中用类型转换运算符明确指明的转换操作。通常,当使用自动类型转换不能满足要求时,才需要在程序中使用强制类型转换。 3.3 运算符与表达式 非赋值表达式计算过程的自动类型转换 转换原则:先把精度低的操作数转成与另一操作数相同精度的操作数后再做运算。 转换规则: ①字符型或短整型数自动转成整型(int)数参与运算。 ②单精度实型数自动转成双精度实型数参与运算。(C中是对的,C++中有疑问) ③其余情况,仅当两个操作数的类型不同时,才将表示范围小的数据类型转成与另一操作数的相同类型后再参与运算。 数据类型表示的数据范围由小到大为: int→unsigned→long→unsigned long→double 赋值表达式计算过程的自动类型转换 若赋值运算符右边表达式的数据类型与其左边变量的类型不一致但兼容,则由系统自动做类型转换。 转换规则: ①将实型数赋给整型变量时,仅取其整数部分赋给整型变量。若其整数部分的值超过整型变量的取值范围,则赋值结果出错。 ②将整型数赋给实型变量时,将整型数转成实型数后,再赋给实型变量。 ③将double型数据赋给float型变量时,要注意数值范围,溢出时赋值就出错。 ④将字符型数据赋给整型变量时,对于无符号字符类型数据,低八位不变,高位补0后赋值;对于有符号字符类型数据,若其值为正,与无符号字符类型的转换规则相同;若其值为负,则高位补1后再赋值。 ⑤将无符号整型或长整型数赋给整型变量时,若在整型的取值范围,则不会出错;否则赋值结果出错。 C++强化了类型检查:对于赋值时的自动类型转换,若表达式的计算结果类型的表达范围大于被赋值的变量的数据表达范围,或表达式的计算结果的精度高于被赋值的变量的精度时,编译器通常会给出警告,希望用户作出处理,如做强制类型转换等。 赋值表达式计算过程的自动类型转换 强制类型转换 格式: (type)表达式 或 type(表达式) 举例:设int a=7,b=2; float x; 则 x=a/b x为3.0f x=(float)a/b x为3.5f x=float(a)/b x为3.5f x=(float)(a/b) x为3.0f x=float(a/b) x为3.0f 强制类型转换 系统能正确自动转换的数据类型,则不必做强制类型转换。例如3+float(4*5.0)中,用float做强制类型转换就是多余的。 如果不做强制类型转换会影响表达式求值的精度或不能完成相应的运算时,才须使用强制类型运算。例如:(int)13.5%(int)3.5。因13.5和3.5都是实数,而取余运算符要求两

文档评论(0)

0004499 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档