第3章C语言运算符和表达式课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第3章C语言运算符和表达式课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 运算 表达式 课件
- 资源描述:
-
1、12/24/1第第3章章 运算符和表达式运算符和表达式 3.1 表达式表达式3.2 算术运算符算术运算符3.3 赋值运算符赋值运算符3.4 不同数据类型数据间的混合运算不同数据类型数据间的混合运算3.5 自增、自减运算符自增、自减运算符3.6 逗号运算符逗号运算符3.7 其它运算符其它运算符本章小结本章小结习题参考答案习题参考答案 12/24/23.1 表达式表达式一表达式一表达式表达式是由运算对象、运算符按照C语言的语法规则构成的符号序列。表达式可以通过运算产生一个结果或完成某种操作。C语言的表达式功能很强,也很复杂,它提供了许多种运算符12/24/33.1 表达式表达式二运算符二运算符运算
2、符是C语言里用于描述对数据进行运算的特殊符号。C语言有三大运算符:算术、关系与逻辑、位操作。C语言还有一些已超出了一般运算符概念的特殊运算符。12/24/43.1 表达式表达式三运算符和表达式的分类三运算符和表达式的分类1运算符的分类运算符的分类 按在表达式中与运算对象的关系(所需要运算对象的个数)可以分为:F单目运算符F双目运算符F三目运算符学习运算符应注意:v运算符功能v与运算量关系l要求运算量个数l要求运算量类型v运算符优先级别v结合方向v结果的类型12/24/53.1 表达式表达式 按它们在表达式中所起的作用又可以分为:算术运算符:+、-、*、/、%赋值运算符:=、+=、-=、*=、/
3、=、%=、&=、|=、=、=自增自减运算符:+、-关系运算符:、=、=、!=逻辑运算符:!、&、|条件运算符:?:位运算符:、&、|、逗号运算符:,其它运算符:()、-、.、(类型名)、*、&、sizeof12/24/63.1 表达式表达式2表达式的分类表达式的分类 按照运算符要求运算对象的个数可以分为:F单目表达式F双目表达式F三目表达式 按照运算符在表达式中的作用,可以分为:F算术表达式赋值表达式F自增、自减表达式F关系表达式F逻辑表达式F逗号表达式12/24/73.1 表达式表达式四优先级和结合性四优先级和结合性优先级指同一个表达式中不同运算符进行运算时的优先次序。结合性是针对同一优先级
4、的多个运算符而言的,它是指同一个表达式中相同优先级的多个运算是自左向右进行运算还是自右向左进行运算。关于C语言运算符的含义、类型、优先级、结合性等问题见附录B。12/24/83.2 算术运算符算术运算符一算术运算符一算术运算符 F+:加法运算符F-:减法运算符F*:乘法运算符F/:除法运算符当运算对象均为整数时运算结果也为整数。(P43)F%:求余运算符(模运算符)。要求%两侧运算对象均为整型数据。算术运算符均为双目运算符,均具有左结合性。*、/、%的优先级为3级,+、-的优先级为4级。12/24/9算术运算符算术运算符v基本算术运算符:基本算术运算符:+-*/%l结合方向:从左向右结合方向:
5、从左向右l优先级:优先级:-*/%-+-(2)(3)(4)(2)(3)(4)说明:说明:l“-”可为可为单目单目运算符时运算符时,右结合性右结合性l两整数相除,结果为整数两整数相除,结果为整数l%要求两侧均为整型数据要求两侧均为整型数据l+-+-*/运算的两个数中有一个数为实数,运算的两个数中有一个数为实数,结果是结果是doubledouble型型例 5/2 =-5/2.0 =例 5%2 =-5%2 =1%10 =5%1 =5.5%2例 5/2 =2 -5/2.0=-2.5例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()v简单赋值运算符简单赋值运算符 (见P4
6、4例3.1、3.2)l符号:符号:=l格式:格式:变量标识符变量标识符=表达式表达式l作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量l左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式例 a=3;d=func();c=d+2;例 3=x-2*y;a+b=3;()v类型转换类型转换l赋值转换赋值转换规则规则:使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其转换成其左边变量的类型左边变量的类型例 float f;int i=10;f=i;则 f=10.0例 int i;i=2.56;/结果i=2;12/24/163.3 赋值运算符
7、赋值运算符二复合赋值运算符二复合赋值运算符在赋值运算符“=”之前加上其它一些双目运算符可以构成复合赋值运算符,用于完成运算、赋值组合操作。C语言中复合赋值运算符的一般形式为:运算符=其中“运算符”可以是:+、-、*、/、%、|、&、所构成的复合赋值运算符是:+=、-=、*=、/=、%=、|=、&=、=、=所有的赋值运算符包括复合赋值运算符的优先级全部相同,均为右结合性。12/24/17v复合赋值运算符复合赋值运算符l种类种类:+=-=*=/=%=&=|=l含义:含义:exp1 op=exp2exp1 op=exp2 exp1=exp1=exp1exp1 op exp2 op exp2a+=3a
8、=a+3x*=y+8x=x*(y+8)x%=3x=x%312/24/183.3 赋值运算符赋值运算符由复合赋值运算符将一个变量和一个表达式连接起来的式子称为复合赋值表达式。它的一般形式为:变量名 复合赋值运算符 表达式复合赋值表达式的作用等价于:变量名=变量名 运算符(表达式)即先将变量和表达式进行复合赋值运算符所指定的运算,然后将运算结果赋给变量。复合赋值表达式的值就是复合赋值运算符左侧变量被赋值以后的值。12/24/193.4 不同数据类型数据间的混合运算不同数据类型数据间的混合运算一自动类型转换一自动类型转换 (p46)整型、实型、字符型数据间可以混合进行算术运算。进行运算时,参与运算的
9、操作数的数据类型要一致,若参与运算的数据类型不同,先要将其转换为相同的类型,然后再进行运算。12/24/203.4 不同数据类型数据间的混合运算不同数据类型数据间的混合运算一自动类型转换一自动类型转换横向箭头表示必须的转换,纵向箭头表示当运算符两侧的运算对象为不同类型时的转换,这些转换都是由系统自动进行的。P47高低doublelongunsignedintchar,shortfloat12/24/21doublefloatlongunsignedintchar,short低高说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换例例 char ch;int i;float
10、 f;double d;ch/i +f*d -(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f -d/l例例 int i;float f;double d;long l;P47例3.4#includemain()int a2,b5;char ca;float x2.5,y3.3,z;zc/2x/ay*b;printf(%fn,z);12/24/223.4 不同数据类型数据间的混合运算不同数据类型数据间的混合运算二强制类型转换二强制类型转换强制类型转
11、换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式)(类型说明符)是类型转换运算符,单目运算,优先级别为2级,具右结合性。在类型转换运算符的右侧跟上表达式形成类型转换表达式,其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。12/24/23强制转换(见强制转换(见P48P48强制类型转换运算符部分)强制类型转换运算符部分)v一般形式:一般形式:(类型名类型名)(表达式)表达式)例:例:(int)(x+yint)(x+y)(int)x+yint)x+y (double)(3/2)(double)(3/2)(int)3.6 (int)3.6 v说明:强制转换得到说明:强制
12、转换得到 所需类型的中间变量,所需类型的中间变量,原变量类型不变原变量类型不变 例例:#include main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:结果:x=3.600000,i=3较高类型向较低类型转换时可能发生12/24/24例例3.5 对比以下两个程序(P48)#include#includemain()main()int a,b;int a,b;float x;float x;a10;a10;b4;b4;x3.2a/b;x3.2+(float)a/b;printf(“x%fn“,x);printf(x%fn
13、“,x);?12/24/253.4 不同数据类型数据间的混合运算不同数据类型数据间的混合运算三强制类型转换三强制类型转换赋值表达式的类型转换当赋值运算符两侧的运算对象数据类型不同时,系统也将进行自动类型转换自动类型转换,转换规则为:将赋值运算符右侧表达式的类型转换为左侧变量的类型。12/24/26例例3.6 赋值运算的自动类型转换。#includemain()char ca;int a321,b,i;unsigned m4294967295,n;float x2.5,y;double d12345678.987;printf(c%c,a%d,m%u,x%f,d%fn“,c,a,m,x,d);c
展开阅读全文