网站大量收购独家精品文档,联系QQ:2885784924

数据类型与表达式讲义.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据类型与表达式讲义

例: int i = 15; float f; f = i / 10; 结果为:f = 1 如果希望 f 的结果为1.5 ,则可将第三条语句改为: 例:在C++中, (7/3+1)+5/6 的值是( ) 3 f = (float) i /10 ; 或 f = i /10.0; 要求 % 的两操作数必须为整数,不允许对浮点数操作。 例:3 % 4=3 4 % 4=0 - 4 % 3= - 1 4 % -3=1 (2) % (取余) 余数的符号与被除数相同。 n = 40 % 5 n = 40 % 7 n = - 40 % 7 n = - 40 % - 7 0 5 -5 -5 运算对象包括常量(数值常量、字符常量,不能对字符串常量进行运算) 、变量、函数等。 a*b/c-1.5+’a’ a*b/c-1.5+’ab’ 2.5.2 算术表达式和运算符的优先级与结合性 书后附录B:运算符与结合性 在求解表达式时,先按一个运算对象两侧的运算符的优先级别高低次序执行。 a-b*c 如果在一个运算对象两侧的运算符的优先级别相同, 则按“自左至右”结合,如 a-b+c ? ? 在表达式中常遇到不同类型数据之间进行运算,如: 10 + ’ a’+1.5 - 1.4 * ’A’ 2.5.3 表达式中各类数值型数据间的混合运算 在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。 假设已指定i为整型变量,f为float变量,e为long型,有下面表达式: 10+‘a’+ i * f – i / e (上述的类型转换是由系统自动完成的) 10+‘a’+ i * f – i / e ? ? ? ? 1 ? 例: 1.5+ 32/5 的值是( ) 7.5 例: (1.5+ 32)/ 5的值是( ) 6.7 (1)、a++ :先取a的值作为表达式的值,然后a=a+1 例:int a; a = 2 ; j = a++ 2.5.4 自增和自减运算符( ++ 、-- ) 结果为:j=2 , a=3 (2)、++ a :先a=a+1 , 然后取a的值作为表达式的值。 例:int a; a = 2 ; j = ++a 结果为:j=3 , a=3 (3)、 a -- :先取a的值作为表达式的值,然后a=a-1 例: int a; a = 2 ; j = a-- 结果为:j=2 , a=1 (4)、 -- a :先a=a+1 , 然后取a的值作为表达式的值。 例: int a; a = 2 ; j = --a 结果为:j=3 , a=3 例:写出下列程序运行结果: int a = 3; int b = ++a; couta bendl; int c = a++; couta cendl; 答案:4 4 5 4 #includeiostream using namespace std; int main() { int i , j , m , n; i=8; j=10; m=++i+j++; n=i+++j; couti\tj\tnendl; return 0; } 答案:10 12 20 注意: 后置++、--的优先级高于前置++、-- 正确地使用++和--,可以使程序简洁、清晰、高效。 请注意: (1)自增(减)运算符只能用于变量,而不能用于常量或表达式。(5++ 、(a+5)++、a++) ? ? ? (2)自增(减)运算符使用十分灵活,但在很多情况下可能出现歧义性,产生“意想不到”的副作用。 (3) 自增(减)运算符在C++程序中是经常见到的,常用于循环语句中,使循环变量自动加1。也用于指针变量,使指针指向下一个地址。 在表达式中不同类型的数据会自动地转换类型,以进行运算。 2.5.5 强制类型转换运算符 强制类型转换的一般形式为: (类型名)(表达式) 利用强制类型转换运算符将一个表达式转换成所需类型。例如: (double)a (将a的值转换成double类型) (int)(x+y) (将x+y的值转换成整型) (float)(5/2) (2.0) (float)5/2 (2.5) 如int(x) 、int(x+y)、float(5)/2 C+

文档评论(0)

gz2018gz + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档