第5章运算符及其表达式

上传人:仙*** 文档编号:244383660 上传时间:2024-10-04 格式:PPT 页数:43 大小:677.50KB
返回 下载 相关 举报
第5章运算符及其表达式_第1页
第1页 / 共43页
第5章运算符及其表达式_第2页
第2页 / 共43页
第5章运算符及其表达式_第3页
第3页 / 共43页
点击查看更多>>
资源描述
,Click to edit Master title style,Click to edit Master text styles,第,5,章 运算符及其表达式,运算符是指用来对运算对象进行各种运算的操作符号。表达式是指由多个运算对象和运算符组合在一起的合法算式。其中运算对象包括常数、常量、变量和函数。本章内容如下:,算术运算符及算术表达式;,赋值运算符及赋值表达式;,关系运算符及关系表达式;,逻辑运算符及逻辑表达式;,条件运算符及条件表达式;,逗号运算符及逗号表达式;,位运算符。,5.1,算术运算符及算术表达式,算术运算符包括基本算术运算符和自增、自减运算符。基本算术运算符是对数值型也包括字符型数据进行加、减、剩、除的四则运算。,5.1.1,算术运算符,算术运算符的具体运用原则:,+,(正)、,-,(负)运算符是属于同一级别的单目运算符,结合方向是自右向左。,+,(加)、,-,(减)运算符是属于同一级别的双目运算符,结合方向是自左向右。例如,a+b-c+d,*,,,/,,,%,是同一级别的双目运算符,结合方向是自左向右。例如:,a+b,*c,,运算顺序是先计算,b,与,c,的乘积,然后再与,a,求和,即,a+(b,*c),。,算术运算符注意以下几点,:,/,(除法运算符)的除数不能为,0,,即不能用一个数去除以,0,。,*(乘号运算符)在式子中不能省略,也不能写成是代数式子中的乘号“,”,或“,”,。例如:求长方体的体积公式为,abc,,在编程时要写成,:a*b*c,。,如果两个整型数相除,得到整型结果。如果两个实数相除或其中有一个是实数,那么得到结果为实型。例如:,5/3=1,,,2/4=0,,,5/-3=1,,,5./3=1.666667,,,5.0/3.0=1.666667,%,求余运算符(或称求模运算),只适合于整型数据和字符型数据。求余运算的结果符号与被除数相同,其值等于两数相除后的余数。,5%3 /*,值为,2*/,-7%-3 /*,值为,-1*/,算术运算符注意以下几点,:,+,、,-,(自增、自减运算符)属于同一级别的单目运算符,结合方向是自右向左。自增、自减运算符只能与变量结合使用,放在变量的前面或者是后面。有以下,4,种形式:,+a,:,a,的值先增加,1,后,再参与其他运算。,a+,:,a,的值先参与其他运算,再使,a,的值增加,1,。,-a,:,a,的值先减小,1,后,再参与其他运算。,a-,:,a,的值先参与其他运算,再使,a,的值减小,1,。,例如:,m=3;m1=m+;,等价于,m=3;m+;m1=m;,【,例,5-1】“+”,和“,-”,运算符在的使用。,对于自增、自减运算符,做以下几点说明:,自增或自减函数只能用于变量,不能用于常量或表达式。例如:,(a+b)+,这样的表示方法是错误的。,在一个表达式中对一个变量自增或自减多次,可能造成困惑。,a=3;k=(+a)+(+a);,这种程序很容易出错,在编程的过程中要避免使用这样的程序,而且也没有必要使用如此难懂的程序,完全可以使用另一种方法来表示,增加程序的可读性。,+,、,-,运算符的结合方向是自右向左,如:,-i+,等价于,-(i+),。,+,、,-,运算符的优先级大于乘、除、求余的优先级。,+,、,-,运算符运算的操作对象只能为整型变量、字符型变量和指针变量,而不能是其他类型的变量。,+,、,-,运算符运算常用于循环变量中,是循环变量自动加,1,或减,1;,也可用于指针变量,是指针指向前一个或后一个地址。,5.1.2,算术表达式,用算术运算符将运算对象即运算量或操作数连接起来,构成符号,C,语言语法规则的式子,称为算术表达式。算术表达中,运算对象包括常量、变量和函数。,例如:,x+y,*a/x-5%3,,,3.5+56%10+3.14,,,a+*1/3,。,5.1.2,算术表达式,关于算术表达式有以下几点说明:,算术表达式的求值顺序按算术运算的优先级别高低次序进行,先执行优先级别高的,再执行优先级别低的。,以表达式,8%3+9/2,为例,,%,、,/,运算符的优先级高于,+,运算的优先级,因此在运算的过程中先算求余和除法,,8%3=2,,,9/2=4,,然后再求和,2+4=6,,因此最后的结果为,6,。,在算术表达式中,运算对象有常量,也有变量。,例如:,a+5*2,(double)(8%3),【,例,5-2】,算术表达式的应用举例。,5.2,赋值运算符及赋值表达式,C,语言的赋值运算符包括简单的赋值运算符和复合赋值运算符,本小节主要讲解简单的赋值运算符,复合赋值运算符将在位运算符一节中进行详细的说明。,5.2.1,赋值运算符,赋值运算符与代数里面的等号相同,即“,=”,。赋值运算符的作用是把运算符右边的表达式的值赋给其左边的变量,其结合性是从右向左。例如:,a=5;,5.2.1,赋值运算符,对赋值运算符我们有以下几点认识:,(,1,)赋值运算符,“,=,”,左边必须是变量,右边可以常量、变量,也可以是函数调用或表达式。,例如:,s=a*b/c-12.34,int a;a=b;,(,2,)赋值与运算符,“,=,”,与数学中的等号,“,=,”,看起来相同,但是它们的含义、作用完全不同。,a=a+2;,(,3,)复合赋值运算符是由其他运算符与基本的赋值运算符组合而成的。,例如:,a+=3;,相当于:,a=a+3;,,,b*=a;,相当于,b=b*a;,。,h/=x+y;,不能理解为:,h=h/x+y,,应该理解为,h=h/(x+y),5.2.2,赋值表达式,由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。一般的书写形式如下:,变量 赋值运算符 表达式,赋值表达式:,a=10 b=c+d a/=d+2,赋值语句:,a=10;b=c+d;a/=d+2;,5.2.2,赋值表达式,对于赋值表达式,需要说明以下几点:,(,1,)赋值运算符的左边必须为变量,而赋值表达式的左边可以是变量,也可以是赋值表达式。当赋值表达式的左边是赋值表达式的时候,应该带上括号。,(a=3*4)=4*6,(正确),a=3*4=4*6,(错误),(,2,)赋值表达式的右边的表达式可以是一个算术表达式、关系表达式、逻辑表达式等等,也可以是一个赋值表达式。例如:,c2=c1=5,相当于,c2=,(,c1=5,),(,3,)赋值表达式里面可以包含复合赋值运算符。,例如:,c2=c1+=1,相当于,c2=(c1+=1),(,4,)在,C,语言中,赋值操作不仅出现在赋值语句中,而且可以以表达式形式出现在其他语句中。,printf(“%d”,a=b=3);,5.3,关系运算符及关系表达式,C,语言中关系运算常用于选择结构、循环结构的条件判断。由关系运算符连接的式子称为关系表达式,用于条件的判断。,5.3.1,关系运算符,关系运算符是用来比较两个运算量大小的运算符,实际上就是一种“比较运算”,运算的结果只能是“,1”,或“,0”,。当两者的比较关系成立的时候,结果为“,1”,;当两者的比较关系不成立的时候,结果为“,0”,,因此关系运算符的结果类型为整型。,5.3.1,关系运算符,对关系运算符进行以下几点说明:,(,1,)关系运算符的优先级别比算术运算符的级别低,但比赋值运算符的级别高。,例如:,a=2*28,顺序为,a=(2*2)(c=a),该关系表达式中的表达式为赋值表达式,将字符,a,赋值给变量,c,,即,Aa,,,A,的,ASCII,值为,65,,,a,的,ASCII,值为,97,,即,6597,,关系不成立,关系运算的结果为,0,。,5.4,逻辑运算符及逻辑表达式,逻辑运算符与关系运算符经常放在一起使用。关系运算是指值与值之间的关系,逻辑运算是指将真值和假值连接在一起的方式。由于关系运算符产生了真或假的结果,所以关系运算表达式中常常使用逻辑运算符。,5.4.1,逻辑运算符,逻辑运算符是对两个含有关系运算符的表达式或逻辑值进行的运算符号,运算的结果为逻辑值。,对逻辑运算符作以出几点说明:,(,1,)“,&”,和“,|”,是双目运算,需要两个操作数,如,a&b,,,a|b,。而“!”是单目运算符,只需要一个操作数,如,!a,。,(,2,)逻辑非的优先级高于逻辑与的优先级,而逻辑与的优先级又高于逻辑非的优先级。,(,3,)运算符之间的运算优先顺序是逻辑非(!)运算符优先级最高,算术运算符优先级高于关系运算符,关系运算符又高于逻辑与(,&,)和逻辑或(,|,),而赋值运算符优先级最低。,5.4.2,逻辑运算规则,逻辑运算的运算规则可简单归纳为:,逻辑与同真为真,a&b&c,逻辑或同假为假,a|b|c,逻辑非遇假变真,!a,5.4.3,逻辑表达式,由逻辑运算符连接起来构成的表达式称为逻辑表达式。逻辑运算的对象通常是关系表达式逻辑表达式,也可以是算术表达式、赋值表达式等其他的表达式。,例如:,a10&a,b)&(n,=cd)/*,逻辑运算符的运算对象是赋值表达式*,/,t=+,x|+y&+z,/*,逻辑运算符的运算对象是算术表达式*,/,逻辑运算有时比较复杂,需要注意以下几点:,(,1,)在一个逻辑表达式中可以包含多个逻辑运算和其他各种运算符,首先注意数值哪个是数值运算,哪些是关系运算,哪些是逻辑运算,搞清各个运算符之间的关系,然后按它们的优先级进行运算。,(,2,)逻辑表达式在进行求值的过程中,不一定必须将表达式求值到底,这是逻辑运算的特殊性所在,称为短路运算。例如:,a&b&c,【,例,5-6】,输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。,5.5,条件运算符及条件表达式,条件运算符是,C,语言中唯一的三目运算符,它根据一个表达式的结果等于,true,还是,false,,执行两个表达式中的一个。由于涉及到三个操作数,一个用于判断的表达式和另外两个表达式,因此这个运算符也称为三元运算符。,5.5.1,条件运算符,条件运算符由符号“?”和“:”组合而成的。条件运算符有三个运算对象,三个运算对象都表达式。第一个运算对象可以是任何类型的表达式,如算术表达式、关系表达式、赋值表达式和逻辑表达式等等,后面两个表达式是类型相同的任何表达式。,条件运算符的优先级,5.5.2,条件表达式,由条件运算符连接而构成的表达式称为条件表达式。一般的表达形式为:,表达式,1?,表达式,2:,表达式,3,5.5.2,条件表达式,关于条件表达式做以下几点说明:,(,1,)条件表达式中含有三个操作对象,它们都是表达式,可以是各种类型的表达式。通常情况下,表达式,1,是关系表达式或逻辑表达式,用于描述条件表达式中的条件,根据条件的真假来判断是进行表达式,2,的运算还是进行表达式,3,的运算。表达式,2,和表达式,3,可以是常量、变量或表达式如算术表达式、关系表达式、赋值表达式和逻辑表达式等。,5.5.2,条件表达式,(,2,)条件表达式的求解过程:,第一步:求解表达式,1,的值。,第二步:如果表达式,1,的值为真即为非,0,,求解“表达式,2”,的值作为整个条件表达式的值。,第三步:如果表达式,1,的值为假即等于,0,,求解“表达式,3”,的值作为整个条件表达式的值。,5.5.2,条件表达式,(,3,)条件表达式允许嵌套使用,即允许条件表达式中的表达式,2,和表达式,3,又是一个条件表达式。,(,4,)一般情况下,条件表达式与结构程序设计中的,if,语句可以进行相互替换。,(,5,)条件表达式中,表达式,1,的类型可以与表达式,2,、表达式,3,的类型不同,表达式,2,与表达式,3,的类型也可以不同,此时表达式值的类型为两者较高类型。,5.6,逗号运算符及逗号表达式,逗号在,C,语言中可以作为一种运算符使用,称为逗号运算符。,5.6.1,逗号运算符,(,1,)逗号运算符是双目运算符,运算的对象可以是任何类型的表达式,运算的结果值是最后一个表达式的值。,(,2,)逗号运算符是所有运算符中优先级最低的。,(,3,)逗号运算符的结合方向是自左向右
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!