C语言运算符与表达式.pptx_第1页
C语言运算符与表达式.pptx_第2页
C语言运算符与表达式.pptx_第3页
C语言运算符与表达式.pptx_第4页
C语言运算符与表达式.pptx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

,第四章 运算符与表达式 2014年3月25,4.1 基本概念,1、运算符 运算符(operator)也称为操作符,对程序中的数据进行运算。参与运算的数据称为操作数(operand)。 运算符是C语言里用于描述对数据进行运算的特殊符号。 C语言有三大运算符:算术、关系与逻辑、位操作。,Page 2,对于运算符,应注意以下几方面。 (1) 运算符的功能和语义。 (2) 运算符的操作数。每个运算符对其操作数的个数、类型和值都有一定限制。 (3) 运算符的优先级(precedence)。每个运算符都有确定的优先级。 (4) 运算符的结合性(associativity)。 见课本表4.1 C语言的运算符,Page 3,2、表达式,表达式是由运算对象、运算符按照C语言的语法规则构成的符号序列。表达式可以通过运算产生一个结果或完成某种操作。 表达式是由常量、变量、函数和运算符组合起来的式子。 一个表达式有一个值及其类型。 表达式可分为算术表达式、关系表达式、逻辑表达式等。,Page 4,运算符和表达式的分类 1运算符的分类 按在表达式中与运算对象的关系(所需要运算对象的个数)可以分为: 单目运算符 双目运算符 三目运算符,Page 5,Page 6, 按它们在表达式中所起的作用又可以分为: 算术运算符: +、-、*、/、% 赋值运算符: =、+=、-=、*=、/=、%=、 &=、|=、=、= 自增自减运算符: +、- 关系运算符: 、=、=、!= 逻辑运算符: !、&、| 条件运算符: ?: 位运算符: 、&、|、 逗号运算符: , 其它运算符: ()、-、.、(类型名)、*、&、sizeof,4.2.1 算术运算符,Page 7,+:加法运算符 -:减法运算符 *:乘法运算符 /:除法运算符 当运算对象均为整数时运算结果也为整数。 %:求余运算符(模运算符)。 要求%两侧运算对象均为整型数据。 算术运算符均为双目运算符,均具有左结合性。*、/、%的优先级为3级,+、-的优先级为4级。,二算术表达式,见课本 54页,Page 8,4.2.2 赋值运算,1赋值运算符 赋值符号“=”就是赋值运算符,其功能是将赋值运算符“=”右侧表达式的值求出并将结果赋值给“=”左侧的变量。 赋值运算符的优先级很低,仅高于逗号运算符,为右结合性。,Page 9,赋值表达式 用赋值运算符将一个变量和一个表达式连接起来的符合C语言语法的式子称做赋值表达式。 它的一般形式为: 变量名 = 表达式 赋值表达式的结果是赋值号右侧的表达式的值。,Page 10,二复合赋值运算符,在赋值运算符“=”之前加上其它一些双目运算符可以构成复合赋值运算符,用于完成运算、赋值组合操作。 C语言中复合赋值表达式的一般形式为: 变量 双目运算符=表达式 其中“运算符”可以是: +、-、*、/、%、|、&、 所构成的复合赋值运算符是: +=、-=、*=、/=、%=、|=、&=、=、= 所有的赋值运算符包括复合赋值运算符的优先级全部相同,均为右结合性。,Page 11,赋值运算的类型转换,见课本55页,Page 12,4.2.3 强制类型转换运算,表达式一般形式: (类型说明符)(表达式) 例如: (float) a 把a转换成实型,Page 13,4.2.4 自增自减运算,一自增自减运算符、表达式 +:自增运算符,使变量的值增加1。 -:自减运算符,使变量的值减少1。 自增、自减运算符均为单目运算符,优先级为2,具右结合性。,Page 14,自增、自减运算符都有两种用法:,前置运算:将+或-运算符置于变量之前,一般形式为:+变量、-变量。 其功能是使变量的值增(减),然后再以变化后的变量值参与其它运算,即先增减、后运算。 后置运算:将+或-运算符置于变量之后,一般形 式为:变量+、变量-。 其功能是变量先参与其它运算,然后再使变量的值增(减),即先运算、后增减。,Page 15,例题4.5,Page 16,4.2.5 关系运算符,用来比较两个量的运算符 关系运算符的值只能是0或1。 关系运算符的值为真时,结果值都为1。 关系运算符的值为假时,结果值都为0。 优先级 (1)前4种关系运算符的优先级别相同,后两种也相同。前四种高于后两种。 (2)关系运算符的优先级低于算术运算符 (3)关系运算符的优先级高于赋值运算符,Page 17,Page 18,逻辑运算符,对逻辑值进行运算的运算符就是逻辑运算符。表示操作数之间的逻辑关系,它们是!(逻辑非)、&(逻辑与)、|(逻辑或)。逻辑运算的结果仍然是逻辑值。 逻辑非(!)是单目运算符,它对操作数进行取反运算。当操作数为非0(逻辑真)时,!运算后结果为0(逻辑假)。反之,若操作数为0(逻辑假),!运算后结果为1(逻辑真)。 注意,所有非0的值在逻辑上都作为“真”,Page 19,逗号运算,将两个或多个表达式连接起来的,表示顺序求值。用逗号连接起来的表达式称为逗号表达式。 逗号表达式的一般形式:表达式1,表达式2,表达式n。 求解过程:自左向右,求解表达式1,求解表达式2,求解表达式n。整个逗号表达式的值是表达式n。 例如:a=3+5,6+8;,Page 20,条件运算,表达式为:表达式1?表达式2:表达式3 先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值, 否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。 例如: 1、max=(ab)?a:b 就是将a和b二者中较大的一个赋给max。 2、min=(ab)?a:b 就是将a和b二者中较小的一个赋给min。,Page 21,注意事项,1、条件运算符的优先级高于赋值符 如:max=(ab)?a:b 可以写成:max=ab?a:b 2、条件运算符?和:是一对运算符,不能分开使用 3、条件运算符的结合方向是自右至左 如:ab ? a:cd?c:d 可写成: ab ? a:(cd ? c:d),Page 22,实训四 运算符与表达式,课本

温馨提示

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

最新文档

评论

0/150

提交评论