chapter03 运算符与表达式.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文档。上传文档
查看更多
chapter03 运算符与表达式

* 混合类型表达式的类型确定规则 两个不同类型的运算量参加运算,C编译系统自动把长度较短的类型转换为长度较长的类型,以保证不丢失精度。 混合类型计算举例: 1/3*3 与 1*3/3 2.50+12 32767+2L * 各数据类型混合运算的排列顺序: * 强制类型转换 目的:弥补自动类型转换的不足。 一般形式: (类型关键字)(变量名或表达式) 举例: float a=56.789; int b; b=(int)a%3; (double)b (float)(20%3+4) * 使用强制类型转换注意: 在进行强制类型转换时,类型关键字必须用括号括住。 在对一个表达式进行强制类型转换时,整个表达式也要用括号括住。 如:(float)(a+b) ? (float)a+b 在对变量和表达式进行了强制类型转换后,并不改变原变量或表达式的类型。 如: int z; float x; double y; z=(int)(x+y); 执行后x、y的类型不变。 * 运算符的优先级和运算顺序 C语言中的优先级从高到低分为15级。 运算符的一般顺序: 先运算优先级别高的,再运算优先级别低的。 对于优先级别相同的运算符,按其结合方向执行。 * 运算符的优先级和结合方向 * 优先级分级一般规律: 单目运算符优先级最高,双目次之,三目较低。 双目运算符中,算术运算符较高,关系次之,逻辑较低(!除外)。 位运算符中,移位运算高于关系运算,位逻辑运算低于关系运算。 圆括号运算符优先级最高,逗号运算符最低。 可用括号 强调或改变 运算顺序。 * Homework 上机运行以前各章(包括本章)中的程序例题,并输出正确结果! 课后习题 (p45 t 2.6-------2.10) * 上机运行程序请注意检查TC所在目录位置: 周五5-6节(4-15周) 实验室30302: 资源0901(41) 刘钊 周二9-10节 实验室30302: 车辆0901(34) (4-12,17)补四次 边小勇 车辆0902(34) (4-12,17)补四次 李琳 周二11-12节 实验室30202 车辆0903(32) (4-12,17)补四次 李琳 第3章 运算符与表达式 * 本次课主要内容: C运算符简介 算术运算 赋值运算 逗号运算符及逗号表达式 长度运算符 强制类型转换 运算符的优先级和运算顺序 * 3.1 C运算符简介 (1)算术运算符: +、-、*、/、%、++、-- (2)关系运算符: 、、= =、=、=、!= (3)逻辑运算符: !、、|| (4)赋值运算符: =、复合的赋值运算符 (5)逗号运算符:, (6)位运算符:、、~、|、^、 (7)条件运算符:?: * C运算符简介(续) (8)指针运算符:*、 (9)强制类型转换运算符:(类型) (10)下标运算符:[ ] (11)求字节数运算符:sizeof (12)分量运算符:? 、- (13)其他运算符:如函数调用运算符( ) * 3.2 算术运算 算术运算符 双目运算符:有两个操作数参与运算 +(加)、-(减)、*(乘)、/(除)、%(求余) 单目运算符:有一个操作数参与运算 +(正)、-(负)、++(自增)、--(自减) 算术表达式 注意:C语言中不含乘方运算符,不能直接进行乘方运算! * 除法运算符“/” 注意下面的表达式: 1/3*3 1*3/3 结果一样? 说明: 两个整数相除,结果为整数;两个实数相除,结果为实数。 阅读程序: main() { int a=22; int b=3; printf(“%d\n”,a/b); } 运行结果为7,而不是 7.333333,Why? * 求余运算符“%” 说明:表达式a%b的运算结果为a除以b的余数,并且a、b必须为整数。 举例: 13%5 结果为3 2%8 结果为2 -22%7 结果为 -1 练习: 122%11 -1%9 * 自增和自减运算符++、-- 作用:将操作数自己增加1或者减少1。 前置(前缀): 如:++i 、--i 后置(后缀): 如:i++、i-- main( ) { int i=3,j=4; i++;++i; j--;--j; printf(“%d %d\n”,i,j); } 结果输出:5 2 * 比较前置运算和后置运算 main( ) { int i=3,j,k; j=i++; k=++j; printf(%d%d%d\n,i,j,k); } 请先阅读下面的程序: 结果输出显示: 4 4 4 过程: i=3; 3 j=i; 3 i=i+

文档评论(0)

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

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

1亿VIP精品文档

相关文档