收藏 分销(赏)

第三章数据类型与运算规则优秀文档.ppt

上传人:二*** 文档编号:5455665 上传时间:2024-11-05 格式:PPT 页数:31 大小:444.54KB 下载积分:5 金币
下载 相关 举报
第三章数据类型与运算规则优秀文档.ppt_第1页
第1页 / 共31页
本文档共31页,全文阅读请下载到手机保存,查看更方便
资源描述
第三章 数据类型与运算规则 基本数据类型与特点 各种数据类型表示范围 常量的表示方法 变量说明语句 运算符与基本运算规则本 章 要 点第三章 数据类型和运算规则$4 算术运算与赋值运算$5 关系运算与逻辑运算按运算类型分类 1.1.算术运算符算术运算符 2.2.关系运算符关系运算符 3.3.逻辑运算符逻辑运算符 4.4.位位运算符运算符 5.5.赋值与赋值组合运算符赋值与赋值组合运算符 6.6.自增自减运算符自增自减运算符 7.7.条件运算 8.8.指针运算 9.9.其它运算符其它运算符按运算对象的数目分类 单目运算单目运算 双目运算双目运算 三目运算三目运算目目:进行运算时需进行运算时需要的要的操作数的数量操作数的数量运算符简介运算符简介用运算符将运算对象(常量、变量和函数等)连接起来的、符合语言语法规则的式子,称为表达式。表达式表达式的组成:表达式的组成:表达式可由常数、变量、函数调用、运算符、及圆括号内的表达式组成;系统定义(数学函数)或自己定义表达式是计算机求解问题的基础表达式是计算机求解问题的基础表达式的学习过程中须注意表达式的表达式的学习过程中须注意表达式的书写和运算规则,关心表达式的值和类书写和运算规则,关心表达式的值和类型,要求熟练正确地掌握各类表达式的型,要求熟练正确地掌握各类表达式的求解技能。求解技能。算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式赋值表达式赋值表达式逗号表达式逗号表达式条件表达式条件表达式算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符增减运算符增减运算符赋值运算符赋值运算符位运算符位运算符运算符的优先级与结合性运算符的优先级与结合性 语言规定了运算符的优先级和结合性。所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。自左至右的结合方向,称为左结合性。反之,称为右结合性。结合性是语言的独有概念。除单单目目运算符、赋赋值值运算符和条条件件运算符是右结合性外,其它运算符都是左结合性。所谓优先级是指,同一个表达式中,不同运算符进行计算时的先后次序.(附录B P366)一、算术运算符一、算术运算符运算符(双目运算符/单目运算符)+加法运算 12 -减法运算 12 负值运算 14 *乘法运算 13 /除法运算 13%求余运算 13优先级:*/%同级(高),+-同级(低)结合性:相同优先级运算符进行运算时的次序 自左向右(标记为(标记为 )int型,结果截取为int型 10/3 10/3-5/3-5/31010.0/3 0/3 11/3 11/3.1/21/21 1./2/210/5*310/5*310/(5*3)10/(5*3)9%31%310%310%-3-10%3-10%-3=3=-1(向零取整向零取整)=0=6=0=0=1 1=1=1=1=-1=-1=-1=-1注意:注意:运算对象的数据类型对运算结果的影响运算对象的数据类型对运算结果的影响余数符号由被除数决定算术表达式的概念表达式中的运算符都是算术运算符。例如,3+6*9、(x+y)/2-1等,都是算术表达式。良良好好的的源源程程序序书书写写习习惯惯:在表达式中,在双目运算符的左右两侧各加一个空格,可增强程序的可读性。请比较表达式“(x+y)/2 1”与“(x+y)/21”,您认为哪个的可读性更好一些?二、自增自减运算符二、自增自减运算符运算符(单目(单目 )+自增自增 1414 自减自减 1414+和 为单目运算,只能作用于变量,而不用于常量或表达式只能对int、char、long和指针变量进行运算功能:+x x=x+1 x x=x1 (前缀)x+x=x+1 x x=x1(后缀)自增自增(自减自减)有有前缀前缀和和后缀后缀之分。之分。前缀前缀形式形式:先先自增自增(自减自减)再再引用引用 后缀后缀形式形式:先先引用引用再再自增自增(自减自减)前缀与后缀的区别:y=+x;x=x+1;y=x;x先加1再赋值 y=x+;y=x;x=x+1;x先赋值再加1实例实例(1 1)x=1;x=1;y=+x;y=+x;结果结果:x=2,y=2x=2,y=2 y=+x;y=+x;x=x+1;y=xx=x+1;y=x;在做在做赋值运算之赋值运算之前前,x x先加先加1 1,然后将,然后将x x赋给赋给y y(2 2)x=1;y=x+;x=1;y=x+;结果结果:x=2,y=1 x=2,y=1 y=x+;y=x+;y=x;x=x+1y=x;x=x+1;先将先将 x x 赋值给赋值给 y,y,然后然后 x x 再加再加1 1例例-i+-i+-(i+)-(i+)i=3;printf(“%d”,-i+);i=3;printf(“%d”,-i+);/-3/-3 例例-i+-i+i=3;printf(“%d”,-i+);i=3;printf(“%d”,-i+);x=3,z=3书写和运算规则,关心表达式的值和类x先加1再赋值d=a+|b+|-c;d=a+&b+&-c;5+;如 ab?a:cd?c:d ab?a:(cd?c:d)运算结果:0表“假”,y=+x;x=x+1;y=x;赋值与赋值组合运算符 6.由赋值运算符或复合赋值运算符,将一个变量和一个表达式连接起来的表达式,称为赋值表达式。e1为可以进行赋值操作的变量=+=-=*=/=&=|=C语言中没有逻辑型,将逻辑型数值化处理,(1)x=1;y=+x;来的、符合语言语法规则的式子,称为表达式。e2为合法的表达式)类型的赋值转换:若赋值运算符两边类后缀形式:先引用再自增(自减)10%310%-3-减法运算 12 负值运算 14z=x+*y+;例 a=x&x=b请比较表达式“(x+y)/2 1”与“(x+y)/21”,您认为哪个的可读性更好一些?功能:相当于条件语句,但不能取代一般if语句/(a=x)&(x=b)目:进行运算时需要的操作数的数量的左操作数为零,则不再对右操作数进行=等于 9 !=不等于 9 x x=3,z=3=3,z=3 x x=3,=3,y y=6 6,z=3,z=3*6 6=18=18 x x=3,=3,y y=6 6,z=2,z=2*6 6=12=12 x x=3,=3,y y=6 6,z=3,z=3*5 5=15=15 x x=3,=3,y y=6 6,z=2,z=2*5 5=10=10 x x=4,z=4=4,z=4*4=164=16注意,以下操作是错误的:5+;x=+(i+j)+1;j =+(5+x);实例实例 已知:已知:intint x x =2,2,y y =5,z;5,z;z=z=+x+x;z=z=+x+x*+y;+y;z=z=x+x+*+y;+y;z=z=+x+x*y+;y+;z=z=x+x+*y+;y+;z=z=+x+x*+x;+x;三、三、赋值与赋值组合运算符赋值与赋值组合运算符运算符(双目(双目 )简单赋值运算:=2它的作用是将一个表达式的值赋给一个变量。赋值组合运算:e1 op=e2 2 等于于:e1=e1 op (e2)其中:op为下列10个运算符之一+*/%|&e1为可以进行赋值操作的变量e2为合法的表达式 例:x+=2;x=x+2;x*=y+1;x=x*(y+1);不等价 x=x*y+1;x%=3;x=x%3;2 结果运算符与基本运算规则x=3,y=6,z=2*5=10与上面等价,结果为 1条件运算 8.按运算符的结合性分为2种综合运算时相关运算符的优先级:x x=x1 (前缀)printf(“%d”,a);=0/3 11/3.的左操作数为零,则不再对右操作数进行自左向右结合 自右向左结合d=a+|b+|-c;=等于 9 !=不等于 910%310%-3赋值表达式赋值表达式由赋值运算符或复合赋值运算符,将一个变量和一个表达式连接起来的表达式,称为赋值表达式。(1)一般格式 变量 (复合)赋值运算符 表达式(2)赋值表达式的值任何一个表达式都有一个值,赋值表达式也不例外。被被赋赋值值变变量量的的值值,就就是是赋赋值值表表达达式式的的值值。且可嵌套且可嵌套例如,“a=5”这个赋值表达式,变量a的值“”就是它的值。例例:a=12;:a=12;a+=a-=a*a a+=a-=a*a例例:int a=2;:int a=2;a%=4-1;a%=4-1;a+=a*=a-=a*=3;a+=a*=a-=a*=3;/a=-264 等价于a=a+(a=a-(a*a)/a=0 等价于a=a+(a=a*(a=a-(a=a*3)说明:说明:(1 1)表达式有值与类型的概念,左操作数)表达式有值与类型的概念,左操作数(变量)的值和所属类型,即为该表达式的值(变量)的值和所属类型,即为该表达式的值和类型。和类型。(2 2)类型的赋值转换:若赋值运算符两边类)类型的赋值转换:若赋值运算符两边类型不一致,但都属数值型和字符类型时,则型不一致,但都属数值型和字符类型时,则=右边的表达式值的类型将自动转换成左右边的表达式值的类型将自动转换成左边变量的类型(即赋值表达式值的类型)。边变量的类型(即赋值表达式值的类型)。见书P59 例3-7类型的赋值转换:去小数部分后去小数部分后整型变量整型变量=实型表达式实型表达式值不变,尾部加值不变,尾部加小数点和零小数点和零实型变量实型变量=整型表达式整型表达式类型的赋值转换:截取截取doubledouble的前的前7 7位有效数字位有效数字floatfloat型变量型变量=doubledouble型表达式型表达式截取截取intint的低的低8 8位位字符型变量字符型变量=整型表达式整型表达式四、关系运算符四、关系运算符运算符(双目运算符 )大于大于 1010=大于等于大于等于 1010 小于小于 1010 =同级(高),!=同级(低)关系运算的结果应该为逻辑型“真”或“假”C语言中没有逻辑型,将逻辑型数值化处理,用整型1表示“真”,用整型0表示“假”。关系表达式关系表达式由关系运算符连接表达式而组成,用以比较表达式由关系运算符连接表达式而组成,用以比较表达式之间大小等异关系。之间大小等异关系。运算符运算符优先级优先级结合方向结合方向运算对象运算对象 =高高从左到右从左到右双目运算符双目运算符=!=!=低低一般形式:表达式1 关系运算符 表达式2说明:说明:(1 1)综合运算时相关运算符的优先级:综合运算时相关运算符的优先级:算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符高高低低(2 2)关系表达式的值是整型的。当关系(为真)时其关系表达式的值是整型的。当关系(为真)时其值为值为1 1;当关系不成立(为假)时其值为;当关系不成立(为假)时其值为0 0;即以即以1 1代表代表“真真”,以,以0 0代表代表“假假”,所以说,所以说C C语言的关系表达式语言的关系表达式的值是整型的,并可参与通常的算术运算。的值是整型的,并可参与通常的算术运算。实例 关系表达式关系表达式 75 75 的值是的值是 1 1,5757 的值是的值是 0 0。已知:int a=13,b=2,c=1;abab)=cab=ca-b=cA!=a成立成立,结果为结果为 1不成立不成立,结果为结果为 0 0成立成立,结果为结果为 1不成立不成立,结果为,结果为 0 0结果为结果为 1与上面与上面等价等价,结果为结果为 1等价等价于于(a-b)(a-b)=1 1,结果为,结果为 0 0等价于等价于65!=97,65!=97,结果为结果为1 1 如何判断数学中的逻辑关系:0a9?0=a=9等价于等价于(0=a)=9(0=a)=9 结果恒为结果恒为1五、逻辑运算符五、逻辑运算符运算符&逻辑与(双目)5 5 ()逻辑或(双目)4 4 ()!逻辑非(单目)14 14()逻辑运算真值表逻辑运算真值表逻辑运算真值表逻辑运算真值表P63P63逻辑运算关系逻辑运算关系a ab b!a!a!b!ba&ba&ba|ba|b非非0 00 0非非00 00非非0非非01000001100111011运算量运算量:0表示表示“假假”,非非0表示表示“真真”,运算结果运算结果:0表表“假假”,1表示表示“真真”,式式2 2 (y y b b )&()&(y y a a )1 结果结果2 结果结果例:要判断例:要判断 0 x 9 0 x 9 是否成立:是否成立:(0 0=x x)&()&(x x=9 9)如果没有括号:如果没有括号:0 0 =x x&x x=9 9 等价等价 结果结果 结果结果 实例:比较下列两个逻辑表达式的执行过程实例:比较下列两个逻辑表达式的执行过程 式式1 1 y y b b&y y a a说明:说明:(1 1)综合运算时相关运算符的优先级:综合运算时相关运算符的优先级:!算术运算符算术运算符关系运算符关系运算符&|&|赋值运算符赋值运算符高高低低(2 2)由由&和和|的结合性则(自左至右),操的结合性则(自左至右),操作时有:作时有:若若&的左操作数为零,则不再对右操作数进行的左操作数为零,则不再对右操作数进行计算,因为必定为零。计算,因为必定为零。若若|的左操作数为非零,则不再对右操作数进的左操作数为非零,则不再对右操作数进行计算,因为此时必定为行计算,因为此时必定为1 1。见书P64例例 a=x&xb&xy a=b|x=y !a|ab/(a=x)&(xb)&(xy)/(a=b)|(x=y)/(!a)|(ab)a=53&2|8b)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,ab?a:b);例例 求求 a+|b|printf(“a+|b|=%dn”,b0?a+b:a-b);expr1取取expr2值值取取expr3值值非非0=0例例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a&c0?1:(xb?a:cd?c:d ab?a:(cd?c:d)expr1、expr2、expr3类型可不同类型可不同例例 x?a:b /x=0,表达式值为表达式值为b;x0,表达式值为表达式值为a六、条件运算符六、条件运算符v按运算符的优先级分为15级v按运算符的结合性分为2种自左向右结合 自右向左结合v优先级不同时:运算符优先级的高低决定了进行运算的先后次序。v优先级相同时:同优先级运算符的运算次序由结合性决定。v例如:四则运算中的“先乘除,后加减”反映了运算符的优先级;“同级运算从左至右”反映了乘/除(加/减运算)的结合性。优先级运算符结合性优先级运算符结合性15()8&.-714+-!+-*&(type)sizeof6|5&13*/%4|12+-3?:11 2=+=-=*=/=&=|=10 =9=!=1,v运算符优先级表
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服