




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章C世界中的加减乘除运算符和表达式,C中的运算符和表达式算术运算符和表达式关系运算符和表达式逻辑运算符和表达式条件运算符和表达式赋值运算符和表达式自增、自减运算符逗号运算符和表达式运算符的优先级,4.1C中的运算符和表达式,4.1.1运算符4.1.2表达式4.1.3优先级与结合性,4.1.1运算符用来对数据进行运算的符号,就可以称为运算符。语言中的运算符如下表所示:,4.1.1运算符按运算符在表达式中与运算分量的关系(连接运算分量的个数),运算符可分为:单目运算符,即一元运算符,只需要一个运算分量,如:-5,!a;双目运算符,即二元运算符,需要两个运算分量,如:a+b,x|y;三目运算符,即三元运算符,需要三个运算分量,如:ab?a:b。,注意:条件运算符(?:)是C语言中唯一的三目运算符。,4.1.2表达式C中运算符和数据构成的式子,就称为表达式;表达式运算的结果就称为是表达式的值。根据运算符的分类,C语言的表达式分为以下8类:算术表达式、关系表达式、逻辑表达式、赋值表达式、条件表达式、逗号表达式、位表达式和其它表达式等。由以上表达式还可以组成更复杂的表达式,例如:z=x+(y=0),4.1.3优先级和结合性优先级:是指当不同的运算符进行混合运算时,运算顺序是根据运算符的优先级而定的,优先级高的运算符先运算,优先级低的运算符后运算。结合性:是指运算符可以和左边的表达式结合,也可以与右边的表达式结合,即:左结合性和右结合性。例如:x+y*z,注意:最典型的右结合性运算符是赋值运算符,它的结合性是自右向左,4.2算术运算符和表达式,4.2.1算术运算符4.2.2算术表达式4.2.3算术运算符的优先级与结合性4.2.4应用举例,4.2.1算术运算符基本的算术运算符有5个,分别是:+:加法运算符或正值运算符-:减法运算符或负值运算符*:乘法运算符/:除法运算符%:求模运算符或求余运算符其中,+(正值运算符)和-(负值运算符)是单目运算符,其余均为双目运算符。,2x,2*x,a/b,4.2.2算术表达式简单的算术表达式,例如:2+3:结果为:52-3:结果为:-12*3:结果为:62/3:结果为:02%3:结果为:2注意:(1)“%”运算符要求两侧的运算分量必须为整型数据;(2)在C中,乘法运算符为“*”,而不能写成数学中的“”号;除法运算为“/”,而不是“”号。,6.0%4,-6%4,6%-4,-6%-4,4.2.2算术表达式复杂的算术表达式,例如:2*(9/3)结果为:610/(12+8)%9)结果为:5,4.2.3算术运算符的优先级和结合性在复杂的算术表达式中:“()”的优先级最高,“*、/、%”运算符的优先级高于”+、”运算符。算术运算符中的结合性均为“左结合”。,4.2.4应用举例【范例4-1】使用算术运算符计算结果。注意:对于“/”运算符,C语言中规定:当它的两个运算分量均为整数时,计算结果也必须为整数。如果两个运算分量中有一个数是浮点型时,则结果也应该为浮点型数据。例如:99.0/5的结果为19.8。如果两个运算分量有一个为负值,其结果随不同的机器系统而不同,但多数机器采用“向零取整”的原则。例如:-7/4的结果为-1;7/-4的结果为1。,4.2.4应用举例【范例4-2】算术运算符和表达式的应用。,4.3关系运算符和表达式,4.3.1关系运算符4.3.2关系表达式4.3.3关系运算符的优先级与结合性4.3.4应用举例,4.3.1关系运算符C语言提供了6种关系运算符,分别是:(大于)、=(大于等于)、=”和“”、“=”、“bc等价于(ab)c关系运算符中的结合性均为“左结合”。,4.3.4应用举例【范例4-3】输出程序中表达式的值01#include02voidmain()0304inta,b,c;05a=b=c=10;/*a,b,c均赋值为10*/06a=b=c;/*将b=c的结果赋值变量a*/07printf(a=%d,b=%d,c=%dn,a,b,c);/*分别输出a,b,c的值*/08a=bc=100;/*将bc=100的结果赋给变量a*/09printf(a=%d,b=%d,c=%dn,a,b,c);/*分别输出a,b,c的值*/10,4.4逻辑运算符和表达式,4.4.1逻辑运算符4.4.2逻辑表达式4.4.3逻辑运算符的优先级和结合性4.4.4应用举例,4.4.1逻辑运算符逻辑运算符主要用于逻辑运算;包含了“x=10+y;对于赋值运算符说明如下:赋值运算符“=”与数学中的等式形式一样,但含义不同,注意区别。注意“=”与“=”的区别,=是用来判断运算符两边的数据是否相等,而=作用是将右边表达式的值赋给左边的变量。如:a=bb?a:b),4.6.4应用举例,【范例4-7】分析下面程序的运行结果。01#include02voidmain()0304inta,b,c;05a=b=c=1;06a+=b;/*等价于a=a+b*/07b+=c;08c+=a;09printf(1)%dn,ab?a:b);/*输出a,b二者的较大者*/10(a=b=c)?printf(AA):printf(CC);/*若a=b=c成立则输出AA,否则输出CC*/11printf(na=%d,b=%d,c=%dn,a,b,c);,4.6.4应用举例,【范例4-8】若a=12,试写出表达式a+=a-=a*=a运算后a的值。,a*=a,a=a*a=12*12=144,a-=144,a=a-144=144-144=0,a+=0,a=a+0=0+0=0,4.7自增、自减运算符,自增运算符:+和自减运算符:-。有以下几种形式:+i/*前置运算,相当于i=i+1*/-i/*前置运算,相当于i=i-1*/i+/*后置运算,相当于i=i+1*/i-/*后置运算,相当于i=i-1*/注意:+、-中间不能有空格;自增自减运算符只能用于变量,是单目运算符;它们都具有“右结合性”。,4.7自增、自减运算符,若i=0;则j=+i;与j=i+;一样吗?举例:【范例4-9】前置加和后置加的区别。说明:y=i+j;应该如何理解?在C中,词法分析遵循“最长匹配”原则。在确保有意义的条件下,从左到右尽可能多地将若干个字符组成一个运算符,所以,上面的表达式就等价于y=(i+)+j。,4.8逗号运算符和表达式,逗号运算符的功能是把两个表达式连接起来,使之构成一个逗号表达式。逗号运算符在所有运算符中是级别最低的。逗号表达式的一般形式为:表达式1,表达式2求解的过程是:先计算表达式1,再计算表达式2,最后整个逗号表达式的值就是表达式2的值如:x=(i=10,i*5),4.8逗号运算符和表达式,【范例4-10】逗号表达式的应用。01#include02voidmain()0304inta=2,b=4,c=6,x,y;05y=(x=a+b),(b+c);06printf(y=%d,x=%d,y,x);07,4.8逗号运算符和表达式,说明:逗号表达式一般形式中的表达式1和表达式2也可以又是逗号表达式。因此可以把逗号表达式扩展为以下形式:表达式1,表达式2,表达式n。程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。并不是在所有出现逗号的地方都组成逗号表达式。,4.9运算符的优先级,运算符的优先级共分为15级,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肾病科中医适宜技术之子午流注篇
- 2025森林资源流转合同样本
- 2025汽车租赁合同标准版范文
- 公司租赁合同范本
- 众筹公司合同范本
- 宾馆日常维护合同范本
- 单位茶叶采购合同范本
- 修水工程合同范本
- 高额房租租赁合同范本
- 工厂安装门窗合同范本
- 2025年秋季学期第一次中层干部会议上校长讲话:凝心聚力明方向沉心落力干实事
- 广西2025年公需科目学习考试试题及答案4
- 代加工板材合同协议书范本
- 2025年事业单位工勤技能-湖南-湖南地质勘查员二级(技师)历年参考题库含答案解析(5卷)
- T-CRHA 028-2023 成人住院患者静脉血栓栓塞症风险评估技术
- 以书为伴 以书为友PPT模板
- 285号附件4市社区文化活动中心社会化专业化管理费用参考
- 带式输送机出厂检验报告
- DB11-T 1828-2021文物保护工程资料管理规程
- 供应室pdca质量提高腔镜器械包装合格率品管圈ppt模板课件
- 某大楼建设工程-监理规划
评论
0/150
提交评论