《C语言》课程PPT_第3章_运算符和表达式

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

运算符和表达式第三章2回顾•变量的定义•常量的定义•变量和常量的区别•标识符的定义•关键字的定义•运算符的类型3目标•解释赋值运算符•理解算术表达式•解释关系运算符和逻辑运算符•理解位运算符和表达式•解释类型转换•理解运算符的优先级4表达式•运算符和操作数的有效组合•在程序执行的过程中,变量的实际值和表达式中出现的常量一起使用操作数运算符2*y+55赋值运算符•可以用在任何有效的C表达式中•通用的形式:变量名=表达式•将同一个值赋给多个变量的操作叫做多重赋值但是,不能像下面的语句中那样赋值:a=b=c=10inta=intb=intc=106运算符分4类算术关系逻辑位一元、二元运算符都是算术运算符用于对包含关系运算符的表达式进行合并或取非测试两个变量或一个变量和一个常量之间的关系将数字按位进行计算7算术表达式•在C中,可以用算术运算符、数字和字符操作数来表示数学表达式示例++i%75+(c=3+8)a*(b+c/d)228关系运算符和逻辑运算符2-1•用于测试两个变量或一个变量和一个常量之间的关系运算符关系运算大于=大于等于小于=小于等于==等于!=不等于9关系运算符和逻辑运算符2-2逻辑运算符用于对包含关系运算符的表达式进行合并或取非使用逻辑运算符的表达式,返回0表示假,返回1表示真示例:if((a10)&&(a20))运算符逻辑运算&&与||或!非10位运算符2-1将数字转换成等价的二进制形式后再处理数据(按位表示法)运算符描述按位与(x&y)如果两个操作数的相应位均为1,则该位的结果值为1按位或(x|y)如果两个操作数的相应位有一个为1,则该位的结果值为1按位取反(~x)将操作数按位取反(0到1和1到0)按位异或(x^y)如果参加运算的两个操作数的相应位同号,则结果为0,异号则为111位运算符2-2示例操作数位操作位表达式数字10&151010&111110101010|151010|111111111510^151010^111101015~10~10101011-11位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字12类型转换运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型charch;inti;floatf;doubled;result=(ch/i)+(f*d)-(f+i);intdoublefloatdoubledouble13转换•通过使用转换可以将一个表达式强制转换成某一种类型。•转换的通用语法是:(type)casttype任意有效的C数据类型示例:经过赋值运算后,(int)f返回的整型值重新转换为浮点数,f本身的值不变。floatx,f;f=3.14159;x=(int)f;14运算符优先级2-1•优先级建立了计算算术表达式时,一组运算符相对于另一组的层次关系•优先级指C计算运算符的顺序•可通过将表达式括在括号中来改变运算符的优先级运算符类型运算符结合律一元-++--从右向左二元^从左向右二元*/%从左向右二元+-从左向右二元=从右向左15运算符优先级2-2•当一个表达式中的运算符具有相同优先级时,结合律还指出C语言计算这些运算符的顺序示例:-8*4%2-3计算顺序如下:完成的操作结果-8(一元减法)-8-8*4-32-32%400-3-316比较运算符之间的优先级•不存在相对于其他算术运算符有较高的优先级•始终按从左向右顺序进行计算17逻辑运算符优先级2-1优先级运算符1非2与3或当条件中有多个逻辑运算符时,计算将从右向左进行18逻辑运算符优先级2-2考虑下面的表达式:FalseORTrueANDNOTFalseANDTrue计算如下:FalseORTrueAND[NOTFalse]TrueANDTrueFalseORTrueAND[TrueANDTrue]FalseOR[TrueANDTrue][FalseORTrue]True“非”的优先级最高“与”是最高的运算符,具有相同优先级的运算符从右向左计算19运算符之间的优先级2-1当公式中含有多种类型的运算符时,必须确立不同类型运算符之间的优先级顺序。一般来说,算术、比较、逻辑运算符的优先级符合下表优先级运算符类型1算术2比较3逻辑20运算符之间的优先级2-2考虑下面的示例:2*3+4/23AND35OR109计算如下:[2*3+4/2]3AND35OR109[[2*3]+[4/2]]3AND35OR109[6+2]3AND35OR109[83]AND35OR109TrueANDTrueORFalse[TrueANDTrue]ORFalseTrueORFalseTrue首先计算算术运算符比较运算符,计算总左到右进行最后计算逻辑运算符21修改优先级4-1•括号()的优先级最高。•使用括号()可修改运算符的优先级。•用括号括起来的优先级较低的运算符具有最高的优先级,最先执行。•在括号嵌套((()))的情况下,最里层的最先执行。•包含多个括号的表达式从左向右进行计算。22修改优先级4-2考虑下面的示例:5+9*3^2-410AND(2+2^4-8/46OR(26AND1011))计算如下:5+9*3^2-410AND(2+2^4-8/46OR(TrueANDFalse))5+9*3^2-410AND(2+2^4-8/46ORFalse))5+9*3^2-410AND(2+16-8/46ORFalse))5+9*3^2-410AND(2+16-26ORFalse))里层括号的优先级大于其他所有的运算符计算外层的括号23修改优先级4-35+9*3^2-410AND(18-26ORFalse))5+9*3^2-410AND(18-26ORFalse))5+9*3^2-410AND(166ORFalse))5+9*3^2-410AND(TrueORFalse))5+9*3^2-410ANDTrue5+9*9-410ANDTrue左侧表达式按约定进行24修改优先级4-45+81-410ANDTrue86-410ANDTrue8210ANDTrueTrueANDTrueTrue25总结•本课主要讲解了以下主题:–赋值运算符–算术算运符–比较运算符–逻辑运算符–位运算符–转换–运算符的优先级

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功