康辉C语言视频教程3.ppt_第1页
康辉C语言视频教程3.ppt_第2页
康辉C语言视频教程3.ppt_第3页
康辉C语言视频教程3.ppt_第4页
康辉C语言视频教程3.ppt_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 运算3.1运算符简介,语言的运算符有以下几类: 1.算术运算符 (见下节) 2.关系运算符 = 9.求字节数符sizeof 12 其它 () ,3.2 算术运算符和算术表达式,基本的算术运算符: + (二元加运算符) - (二元减,或一元负运算符) * (乘法运算符) / (除法运算符) 当进行+、-、*、/混合运算时,各运算符之间必须要有一定的优先次序和结合方向。语言中规定+、-、*、/之间的优先次序如下:-、* /、+ -。 同一行运算符的优先级相等,运算时按优先级从高到低,同级从左至右的原则进行,如:a*b+c/d-e、(a*b)+(c/d)-e、 a*b/c、a*-c+b/d

2、a,b,c,d,e等称为操作数,它可以是常量或变量,由操作数和运算符以及圆括号按一定规则构成的式子称为表达式。由数值型操作数和算术运算符构成的表达式称为算术表达式。,模运算符 模运算符是一个二元运算符。 优先级和结合方向同*和/。 要求两侧的操作数均为整型数据。且nm的结果为n/m的余数部分,即n被m除的余数。 余数的符号与被除数一致。如:73的结果为1,42的结果为0,23的结果为2,-2%3=? 2%-3=? -2%-3=?。,3.2 算术运算符和算术表达式,3.3赋值运算符和赋值表达式,赋值运算符=: 一个二元运算符,其左操作数只能为变量,而右操作数可以为常量、变量或表达式。 赋值表达式

3、的一般形式为:= 先对“=”右端表达式求值,将结果赋给变量。 赋值表达式可以出现在其他表达式中:(a=1)+(b=3)*4-(c=5) 赋值表达式右侧也可以是一个赋值表达式:a=(b=5) 赋值表达式中“=”的结合顺序是“从右至左”。 算术运算符的优先级高于赋值运算符。例如: a=b=c=d=1,a=5+(b=3),a=(b=4)+(c=6),a=b=4+(c=6) 复合的赋值运算符:a+=b,a-=b,a*=b,a/=b,a%=b,3.4 ,运算符,算术运算符+和-使参加运算对象的值增1或减1,也是赋值运算。 单目运算符,运算对象可以是整型或实型变量,不能是常量或表达式,例如:+a,a+,a

4、-,-a,+3,(i+j)- 它们在算术运算符中的优先级和结合方向如下: + - (一元负)从右至左 * / %从左至右 + -(二元减)从左至右 其构成形式有如下四种:前缀(+a、-a),后缀(a+、 a-),运算后a的值相同,表达式的值不同。,main() int a=1,b=1; printf(“+a=%d,b+=%dn”,+a,b+); printf(“ a=%d,b=%dn ”,a,b); printf(“ -a=%d,b-=%dn ”,-a,b-); printf(“ a=%d,b=%dn ”,a,b); 运行结果: 考虑:i的初值为3,表达式(i+*+i+i-*-i)=?,3.4

5、 ,运算符,+a=2,b+=1 a=2,b=2 -a=1,b-=2 a=1,b=1,3.5 混合运算和类型转换,当运算符两边的操作数类型不同时,其中一个操作数就要经过类型转换以和另一个操作数的类型相一致,然后才能进行运算。 变换操作数采取就高不就低的原则。即级别低的操作数先被转换成和级别高的操作数具有同一类型,然后再进行运算,结果的数据类型和级别高的操作数相同。各种类型级别的高低如下所示: 高 double float long unsigend 低 int char, short 例如:10+a+5*1.5-10/3 强制类型转换表达式:(类型)表达式) 例如:(int)(1.5+2.3)=

6、?,(int)1.5+2.3=?,类型转换也发生在赋值运算符的两边,且不管赋值运算符右边表达式的结果类型为何,一律转换为左边变量的类型,然后再赋给左边的变量。 类型的提升:是将较低级的类型转换为较高级的类型,通过增加一些二进制位来完成,精度没有损失。 类型的下降:是将较高级的类型转换为较低级的类型,要截断和舍入二进制位,通常会引起精度的损失。,3.5 混合运算和类型转换,main() char c1,c2,c3; int i1,i2,i3; float f1,f2,f3; c1=x;c2=1000;c3=6.02e23; printf(“%c %c %cn”,c1,c2,c3); i1=x;i2=1000;i3=6.02e23; printf(“ %d %d %dn ” ,i1,i2,i3); f1=x;f2=1000; f3=6.02e23; printf(“ %f %f %fn ” ,f1,f2,f3); 运行结果为:,3.5 混合运算和类型转换,x 120 1000.0 120.000000 1000.000000 602000017271895229000000.000000,3.6 逗号运算符和逗号表达式,逗号表达式的构成形式如下: 表达式1,表达式2,表达式n 将多个表达式连接起来构成逗号表达式。 逗号表达式的求解过程是:先求解表达式1,再求解表达式2,最后求解表达式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论