




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章运算符和表达式,3.1表达式3.2算术运算符3.3增1/减1运算符3.4关系、逻辑运算符3.5条件运算符3.6数据类型间的转换3.7赋值运算符3.8位逻辑运算符3.9其它运算符,3.1表达式,表达式的概念表达式是用运算符与圆括号将操作数连接起来所构成的式子。表达式与简单语句在C语言中,在一个表达式的后面加上分号“;”就构成了简单语句。有意义的简单语句无意义的简单语句,3.2算术运算符,种类及运算:+-*/%注意:两个整数相除,结果仍为整数,若有一个数是浮点数,则结果为浮点数据类型。例:5/2=2截去小数5/2.0=2.5取模运算符%实际上是数学运算的求余数运算,其两个操作对象都必须是整数。例:5%2=1取余数“”、“”还可以用做一元运算符。其余操作符均为二元运算符。,算术表达式及算术运算符的优先级算术表达式就是用算术运算符和圆括号将操作数连接起来的式子。算术运算符的优先级与数学基本相同,即先乘除,后加减。取模运算的优先级与乘除相同。一元算术运算符的优先级高于二元算术运算符。,注意:算术表达式应能正确的表达数学公式。例如:数学表达式是3+x2a相应的C语言表达式应该是什么呢?算术表达式的结果应该不超过其所能表示的数的范围。,算术运算符的结合性运算符的结合性是指如果一个操作数左边和右边的两个运算符的优先级相同,应该优先计算的操作符。例如:a+b-cC语言规定二元算术运算符的结合性是自左至右。,3.3增1/减1运算符,类型:+、-。这两个运算符都是单目运算符,其功能分别是将变量自身的内容增1和减1。+i和-i是前缀表示法,i+和i-是后缀表示法。若直接在+i和i+的后面加上分号构成C的执行语句,即+i;和i+;前缀与后缀并无区别。但是,将它们用在表达式中则前缀与后缀是有区别的。,前缀表示法是先将i值增/减1,再在表达式中使用;而后缀表示法是先在表达式中使用i的值,再将i值增/减1。例如:i=3;i=3;j=i+;j=+i;结果:j的内容为3j的内容为4i的内容为4i的内容为4,注意:增1/减1运算符的操作对象是一个变量2+、-2以及(x/y)+均为非法增1/减1运算符的优先级高于算术运算符,与单目运算符-(取负)、!(逻辑非)的优先级相同,结合方向自右至左。例:表达式-i+等价于-(i+)副作用:printf(“%d,%d”,i,i+);在不同的编译环境下结果有可能不同。尽量不要在一般的表达式中将增1/减1运算符与其它运算符混合使用。,main()inta=2,b,c;b=a+;c=a+1;printf(%d,%d,%dn,a,b,c);,例:判断运行结果,3.3.1关系运算符,关系运算,就是比较两个数值的大小的运算符。关系运算符:、=、yz;k=(x=y);printf(%d,%d,%d,i,j,k);,例inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,例5278在C中是允许的,值为,0,例inti=1,j=7,a;a=i+(j%4!=0);则a=,2,例a0结果为A100结果为,1,0,3.3.2逻辑运算符,如果将“与、或、非”运算应用于逻辑值(逻辑真和逻辑假)则称为逻辑运算。C语言中的逻辑运算符有三个:逻辑与printf(Pleaeinputthreeint:);scanf(%d%d%d,例:将输入的字母小写变大写。#includestdio.h#includestring.hvoidmain()charc;puts(pleaseinputonechar:);c=getchar();c=(c=a?(c+A-a):c);putchar(c);putchar(n);,3.6数据类型间的转换,自动转换强制转换,自动转换自动转换:就是系统根据规则自动将两个不同数据类型的运算对象转换成同一种数据类型的过程。原则:低数据类型转化为高数据类型。,例:1、inti;floatf;f8i-float2、inti;charc;c+i-int,强制转换在C语言中,允许程序员根据自己的意愿将一种数据类型强制转换成另一种数据类型。强制转换的格式为:(数据类型名)操作对象注意,强制转换并不改变操作对象的数据类型和数值。例如,(int)f的确切含义是将f转换成为整型值参与运算,而f本身的数据类型和数值都没有任何改变。,比较:(float)i+3和(float)(i+3)建议:任何情况下都对实行类型转换的表达式使用括号。,3.7赋值运算符,普通赋值运算符赋值表达式的一般形式是:变量名=表达式赋值语句的一般形式是:变量名=表达式;赋值运算符的优先级小于算术运算符。赋值运算符的结合性是自右至左,例:a=b=2,注意:赋值运算符的类型是被赋值的变量的类型,若两端类型不同,会发生类型换。无法赋值给常量和表达式例:5=a+8,a+2=c+3,是非法的。赋值运算符右边的表达式还可以是一个赋值表达式,构成多重赋值。例:a=b=2,例:计算下列表达式的值:inta,b;a=3;a=3;a=1;b=0;b=0;b=1;,/a=3,/表达式值1,/表达式值0,/表达式值1,/表达式值0,/b=0,复合赋值运算符把赋值运算符与算术、位逻辑、移位运算符放在一起,就构成复合赋值运算符。复合算术赋值运算符有5个+=、-=、*=、/=、%=。还有与移位和位逻辑结合的复合赋值运算符5个(=、/*charc;*/c=B;printf(c=%c,c+a-A);,3.8位逻辑运算符,类型:w1=10;w2=8;w3=w1|w2;w3的内容可以通过下式运算:0000101000001000(按位或|)00001010(结果),|运算经常用于把特定位置1。例如,a的值为11011010,b的值为11110000,a|b11011010|1111000011111010相当于把a的高4位置1,低4位不变。,按位异或按位或的运算规则是:00=0、01=110=111=0例如:charw1,w2,w3;w1=10;w2=8;w3=w1w2;w3的内容可以通过下式运算:0010101000011000(按位异或)00110010(结果),按位取反按位取反的规则是:0=11=0,移位运算符左移双目运算符,运算符右边的表达式表示移位的位数。例:x=x2;,3.9其它运算符,逗号运算符表达式1,表达式2逗号表达式的求值过程是:先求解表达式1,再求解表达式2,并将表达式2的解作为逗号表达式的解。例如5,6的值是6z=(y=3,x*y)与z=x*(y=3)是等价逗号运算符一般用于循环for语句,不提倡使用在其它的表达式中。,求字节数运算符sizeof是一个比较特殊的单目运算符,也是一个非常有用的运算符,经常用于动态分配空间。其语法格式为:sizeof(表达式)表达式可以是变量名、常量、以及数据类型名。,它的功能是:求表达式中变量名所代表的存储单元所占的字节数;或是求表达式中常量的存储单元所占的字节数;或是求表达式中的数据类型表示的数据在内存单元中所占的字节数。例:sizeof(int)的结果是2,sizeof运算符比较灵活,同样是求整型int数据所占的字节数,可以使用三种办法:(1)使用inta;求sizeof(a)(2)求sizeof(10)(3)求sizeof(int),1、修改程序,使之运行正确#include“stdio.h”voidmain()doulef;printf(“Enterandouble:);scanf(“%d”,f)printf(“f=%fn”,f);,练习,2、#includestdio.hvoidmain()integerI,j;printf(“Enteraninteger:);scanf(“%d”,3、判断运行结果#includestdio.hvoidmain()inti,j,k,q;i=9;j=10;k=i+;q=+j;printf(“k=%d,q=%dn”,k,q);,练
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南通驾驶员从业资格考试及答案解析
- 酒店旧楼改造施工方案
- 口腔进修学习汇报
- 西藏新型化粪池施工方案
- 主管年终总结报告
- 木托盘生产管理
- 斯达车辆安全行驶答题库及答案解析
- 喘证危重病人护理查房
- 安全保卫知识考试题库及答案解析
- 证券从业资格考试习题及答案解析
- 机电一体化设计
- 新教材教科版五年级上册科学 第二单元 地球表面的变化 单元全套课时练
- 职业发展与就业创业指导ppt课件完整版
- 挠度计算模板表格(自动版)
- (中职中专)财经法规与会计职业道德课件完整版电子教案
- 宝钢集团生产安全事故案例汇编
- DB37T 5151-2019 园林绿化工程资料管理规程
- Q∕GDW 11612.43-2018 低压电力线高速载波通信互联互通技术规范 第4-3部分:应用层通信协议
- 贝多芬F大调浪漫曲—小提琴谱(带钢伴谱)
- 压力传感器(课堂PPT)
- (施工方案)场地三通一平施工方案
评论
0/150
提交评论