1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三讲 运算符和表达式 教材:C程序设计导论 本讲重点 掌握不同运算符(算术、关系、逻辑运算符等等)的使用特点、清楚每种运算符的优先级与结合性。 掌握各种表达式的含义与使用要点。 3.1运算符及表达式简介 3.2算术运算符 3.2算术运算符 3.2算术运算符 3.3自增、自减运算符 C语言提供两个特殊运算符:++(自增运算符) --(自减运算符) ++与--运算符的使用规则: ++与--运算符只能用于有左值的表达式,而不能用于常量或者一般的表达式。 如:5++或(a+b)++是不合法的。 自增运算符表示加1运算,如++n和n++都表示将n的值加1。 自减运算符表示减1运算,如--n和n--都表示将n的值减1。 i++与++i,i--与--i的区别: ++i与--i称为前缀形式:在计算时先改变变量的值,再参与其它运算; i++与i--称为后缀形式:在计算时先参与其它运算,再改变变量的值。 例:若 i=1 则 k=++i +2 运行后 i=2、k=4 而 k=i++ +2 运行后 i=2、k=3 ++与--运算符的结合性为自右至左。 3.3自增、自减运算符 例 #include stdio.h void main() { int a,b,c; a=9; b=++a; printf(“(1)a=%d***b=%d\n”,a,b); a=9; b=a++; printf(“(2)a=%d***b=%d\n”,a,b); } 3.3自增、自减运算符 几点注意事项: 对i++ +j表达式的处理: C编译系统采用“自左至右”的原则 即:i++ +j与(i++)+j等价 而不是与i+(++j)等价 增量运算符有副作用,会改变运算量的值。如果使用不当,会带来意想不到的结果,如: 若i=3,则表达式(i++)+(i++)+(i++)的结果应为多少? 有的系统从左到右顺序完成括号中的运算,即表达式经过为3+4+5=12。 另外一些系统(如Turbo C、MS C)则先计算表达式的值,再自加3次,即表达式结果为3+3+3=9。 对表达式printf(“%d,%d”, i, i++)的理解: 若i=3,则在Turbo C中对输出函数参数的求值顺序采用“自右至左”,结果为:4,3(而不是3,3) 3.4赋值运算符 1、使用形式: 变量=表达式 2、含义:将“=”右边的表达式之值赋给左边的变量。 如:x=1; x=x+1; 3、使用要点: (1)赋值运算符左边的量(称为左值)一般是变量。 (2)当“=”两边数据类型不同时,将进行数据类型的自动转换,原则: 以“=”左边运算对象的数据类型为准。 如: int x; float y=3.5; x=y; 则运行结果为int型 (3)可以使用复合赋值运算符 3.4赋值表达式 1、含义:由赋值运算符将一个变量和一个表达式连接起来的式子。 变量 = 表达式 2、求解过程: 赋值运算符按照“右结合”顺序运算,将“=”右边表达式的值赋值给左边的变量。 3、使用举例: a=b=c=3 a=5+(c=2) a=(b=4)+(c=6) a=(b=10)/(c=2) a+=a-=a*a 赋值运算时不同类型数据间的自动转换 赋值兼容规则:以“=”左边变量的类型为准,将“=”右边的值转换为与 之相一致,然后进行赋值。 1、实型数据赋值给整型数据时,舍弃小数部分; 即:int=float的结果为int型。 如:float a; int s; a=12.34; s=a; 这时s的值为12。 2、将整型数据赋值给实型变量时,数值不变,但数据是浮点形式的; 即:float=int的结果为float型。 如:int s; float a; s=12; a=s; 这时a的值为12.00000。 赋值运算时不同类型数据间的自动转换 赋值运算时不同类型数据间的自动转换 3.4复合赋值运算符 3.5关系运算符 关系运算符用于判断各个运算对象之间的相互关系 符号类型:、、=、=、==、!= 优先级: 、、=、=的优先级相同,而==、!=的优先级相同,且前者高于后者; 关系运算符的优先级低于算术运算符,高于赋值运算符。 例: ca+b 等价于 c(a+b) 算术运算符

文档评论(0)

考试教学资料 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档