《03 运算符.ppt》由会员分享,可在线阅读,更多相关《03 运算符.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、运算符运算符第第3章章回顾回顾q基本数据类型q数据存储q常量与变量q数据类型转换2目标目标q了解表达式的概念q熟悉算术运算符q熟悉赋值运算符q熟悉关系运算符q了解位运算符q熟悉运算符的优先级和结合方向3表达式表达式q用运算符和括号将操作数连接起来的、符合语言语法规则的式子,称为表达式q运算符和操作数的有效组合q操作数可以是变量、常量或者函数q在程序执行的过程中,变量的实际值和表达式中出现的常量一起使用q表达式可分为:q算术表达式q关系表达式q逻辑表达式q函数表达式操作数操作数运算符运算符2*y+54运算符运算符q根据操作数的数量可以分为:一元运算符、二元运算符和三元运算符q根据用途可以分为以下
2、几类:q赋值运算符q算术运算符q关系运算符q逻辑运算符q运算符的优先级和结合方向q按运算符的优先级高低次序执行。例如,先乘除后加减。q如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按语言规定的结合方向(结合性)进行。5算术运算符算术运算符一元运算符操作二元运算符操作-一元减+加+递增-减-递减*乘%模/除pow幂计算一个计算一个整数除法整数除法的余数的余数幂幂函数函数的示例:的示例:pow(9.0,2.0)9是底数,是底数,2是指数是指数结果是结果是9*9=81+和和-运算符前置和运算符前置和后置有很大区别后置有很大区别6算术表达式算术表达式q算术表达式中的运算符都是算术运算符。
3、q示例:q(x+y)/2-1q+i%7 q5+(c=3+8)qa*(b+c/d)*22qC语言规定:两个整数相除,其商为整数,小数部分被舍弃。例如,22/5结果等于4,而不是4.4。q良好的源程序书写习惯:在表达式中,在双目运算符的左右两侧各加一个空格,可增强程序的可读性。7算术运算符之间的优先级算术运算符之间的优先级q所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。q自左至右的结合方向,称为左结合性。反之,称为右结合性。运算符类型运算符结合方向一元-+-从右向左二元 */%从左向右 二元 +-从左向右 8赋值运算符赋值运算
4、符q赋值符号“=”就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。q通用的形式:变量名=表达式q将同一个值赋给多个变量的操作叫做多重赋值a=b=c=10int a=int b=int c=10但是,不能像下面的语句中那样赋值但是,不能像下面的语句中那样赋值:9复合赋值运算符复合赋值运算符运算符表达式计算结果(假设 X=10)+=X +=5X=X+515-=X -=5X=X-55*=X*=5X=X*550/=X /=5X=X/52%=X%=5X=X%50还还可以与位运算符构成复合可以与位运算符构成复合赋值赋值运算符,如:运算符,如:=、=、&=、|=10赋值运算符之间的优先级赋值运算符之
5、间的优先级q所有的赋值运算符的优先级相同q始终按从右向左顺序进行计算q赋值运算符的优先级低于算术运算符,仅高于逗号运算q赋值表达式q由赋值运算符或复合赋值运算符,将一个变量和一个表达式连接起来的表达式,称为赋值表达式。q赋值表达式的值:任何一个表达式都有一个值,赋值表达式也不例外。被赋值变量的值,就是赋值表达式的值。11关系运算符关系运算符q用于测试两个操作数或两个表达式之间的关系,其中操作数可以是变量、常量和表达式运算符关系运算大于=大于等于小于=小于等于=等于!=不等于关系表达式的计算结果关系表达式的计算结果 =逻辑值(真逻辑值(真-1-1或假或假-0-0)12关系运算符之间的优先级关系运
6、算符之间的优先级q不存在相对于其他算术运算符有较高的优先级q始终按从左向右顺序进行计算运算符类型运算符结合方向二元 =从左向右二元 =!=从左向右 13逻辑运算符逻辑运算符2-1q逻辑运算符用于对包含关系运算符的表达式进行合并或取非q使用逻辑运算符的表达式,返回 0 表示假,返回 1 表示真q示例:if(a10)&(a20)运算符逻辑运算说明&与当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。|或当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。!非当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。14逻辑运算符逻辑运算符
7、2-2q逻辑运算符的运算对象主要是关系表达式q也可以是其它表达式,根据表达式的结果,0表示逻辑假值,非0表示逻辑真值q运算规则表q逻辑表达式计算有时会出现部分表达式不参加运算的情况(短路现象)15逻辑运算符之间的优先级逻辑运算符之间的优先级q当条件中有多个逻辑运算符时,可以使用括号,但括号只改变了操作数的组合关系,在特定的条件下仍然存在短路现象优先级运算符结合方向1 !从右向左2&从左向右 3|从左向右 16位运算符位运算符2-1q将数字转换成等价的二进制形式后再处理数据(按位表示法)运算符描述按位与 (x&y)如果两个操作数的相应位均为 1,则该位的结果值为 1按位或 (x|y)如果两个操作
8、数的相应位有一个为 1,则该位的结果值为 1 按位取反(x)将操作数按位取反(0 到 1 和 1 到 0)按位异或(xy)如果参加运算的两个操作数的相应位同号,则结果为 0,异号则为 1左移(x2)右端(低位)移出部分舍弃,左端(高位)根据符号位补0或者1,无符号或正数补0,负数补117位运算符位运算符2-2q位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字操作数位操作位表达式数字10&15 1010&111110101010|151010|1111 111115 10 151010 11110101 5 1010101011-1118运算符优先级运算符优先级2-1q
9、优先级建立了计算算术表达式时,一组运算符相对于另一组的层次关系q优先级指 C 语言计算运算符的顺序q可通过将表达式括在括号中来改变运算符的优先级q优先级别相同,运算次序由结合方向决定q运算符的结合方式有两种:左结合和右结合q不同的运算符要求有不同的运算对象个数19运算符之间的优先级运算符之间的优先级运算符描述结合性(),.,-,圆括号自左向右!,+,-,sizeof逻辑非,递增,递减,求数据类型的大小自右向左*,/,%乘法,除法,取余自左向右+,-加法,减法自左向右,=小于,小于等于,大于,大于等于自左向右=,!=等于,不等于自左向右&逻辑与自左向右|逻辑或自左向右=,+=,*=,/=,%=,
10、-=赋值运算符,复合赋值运算符自右向左一般来说,算术运算符优先级高于比较运算符高于逻辑运算符高于赋值运算符20运算符优先级示例运算符优先级示例2*3+4/23&35|103&35|103&35|103&35|103)&35|109(1&35)|109(1&1)|1091|1091首先计算首先计算算术运算符算术运算符比较运算符,计比较运算符,计算总左到右进行算总左到右进行最后计算逻辑最后计算逻辑运算符运算符21修改优先级修改优先级q括号()的优先级最高q使用括号()可修改运算符的优先级q用括号括起来的优先级较低的运算符具有最高的优先级,最先执行q在括号嵌套()的情况下,最里层的最先执行q包含多个括号的表达式从左向右进行计算22总结总结q表达式的概念q赋值运算符q算术运算符q关系运算符q位运算符q运算符的优先级和结合方向23