欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第3章运算符和表达式.ppt

    • 资源ID:67186471       资源大小:445.50KB        全文页数:26页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章运算符和表达式.ppt

    第3章 运算符和表达式 本章主要内容3.1 3.1 基本运算符基本运算符3.2 3.2 表表 达达 式式3.3 3.3 运算符优先级和结合性运算符优先级和结合性3.4 3.4 类类 型型 转转 换换3.1 基本运算符3.1.1 3.1.1 算术运算符算术运算符3.1.2 3.1.2 关系运算符关系运算符3.1.3 3.1.3 逻辑运算符逻辑运算符3.1.4 3.1.4 位运算符位运算符3.1.5 3.1.5 赋值运算符赋值运算符3.1.6 3.1.6 逗号运算符逗号运算符3.1.7 3.1.7 三目运算符三目运算符3.1.8 3.1.8 自增、自减运算符自增、自减运算符3.1.9 3.1.9 sizeofsizeof运算符运算符3.1.1 算术运算符C+中含有以下单目算术运算符:-负数运算符 +正数运算符C+中含有以下双目算术运算符:+加法运算符 减法运算符 *乘法运算符 /除法运算符%求模运算符3.1.2 关系运算符 关系运算符完成两个操作数的比较运算。C+中提供了6个关系运算符:(小于)、(大于)、=(大于等于)、=(等于)、!=(不等于)。当关系成立时,其运算结果为整数1(逻辑真);当关系不成立时,其运算结果为整数0(逻辑假)。关系运算的结果可作为一个整数参与表达式的运算。由于实数在计算机内进行运算和存储时,都会产生误差,在进行两个实数的比较时,不能采用精确的比较(直接比较两数的大小)。3.1.3 逻辑运算符 逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式,包括:逻辑非(!)逻辑与(&)逻辑或(|)。逻辑非是单目运算符,只要求有一个运算量。逻辑运算符的运算优先级为:!高于&高于|。!的优先级高于算术运算符,&和|的优先级比关系运算符低。例3-1 逻辑运算符使用示例3.1.4 位运算符 C+中提供了按位逻辑运算符按位与(&)按位或(|)按位异或()移位运算符()取反运算符()1.按位异或逻辑运算符 按位异或“”也称XOR运算符,其运算规则是:将两个操作数逐位进行运算,若对应位不同,则该位结果为1,否则为0。3.1.4 位运算符2.移位运算符 1)左移运算符:operationm(m为整数)当左移时,对于带符号数,最高位表示符号,可能会因为低位的1或0移到最高位,最终改变操作数的符号。当右移时,操作数右移m个二进制位后,左边移出的空位用符号位补齐,最高位始终补和原来的最高位相同的数。位运算符的运算优先级为(括弧):高于()高于&高于高于|。3.1.5 赋值运算符 C+语言提供了两类赋值运算符:基本赋值运算符 复合赋值运算符。基本赋值运算符为“=”复合赋值运算符有 +=、-=、*=、/=、%=、=、&=、=、|=。赋值运算符作用是将一个数值或一个表达式的值赋给一个变量。3.1.5 赋值运算符 (1)赋值运算符都是二元运算符,赋值操作具有右结合性。即当表达式中有多个赋值运算符时,其是从右向左结合的。(2)赋值运算符左边的操作数必须是非const的左值。(3)多次连续赋值操作。赋值表达式的返回值是赋值后左边变量的值。可以将一个赋值表达式作为另一个赋值表达式的右操作数,实现连续的赋值。(4)赋值运算符的优先级是同级的。3.1.6 逗号运算符 在C+中,逗号“,”既是运算符,又是分隔符。逗号运算符用来将两个表达式连接起来,逗号表达式的一般表达形式为:,逗号运算符是双目运算符,取其右操作数的值作为运算结果。逗号运算符的优先级最低。例3-2 逗号运算符的使用示例 3.1.7 三目运算符 在C+中,三目运算符的一般形式为:?:;关于三目运算符的几点说明。(1)表达式1是关系表达式或逻辑表达式,表达式2和表达式3可以是常量、变量或表达式。(2)条件运算符的结合方向为“自右至左”。(3)表达式1、表达式2、表达式3的类型可以不同。此时条件表达式值的类型为它们中较高的类型。例3-3 三目运算符的使用示例3.1.8 自增、自减运算符 自增运算符“+”、自减运算符“-”。这两种运算符都是一元运算符,有前置和后置两种形式:(1)前置运算:先自加(减)后引用,例如:+i或I;/表示在使用i之前先使i加1或减1 (2)后置运算:先引用后自加(减),例如:i+或i-;/表示使用i之后再使i加1或减1 自增运算符和自减运算符只能用于变量,结合方向都是自右向左的。例3-4 自增、自减运算符的使用示例3.1.9 sizeof运算符 C+中,每种类型的变量都占用一定大小的存储单元,该存储单元的大小和变量的类型以及程序运行所在的机器有关。sizeof运算符用于测试某种数据类型或表达式的类型在内存中所占的字节数,它是一元运算符。其语法格式为:sizeof()或 sizeof()例3-5 sizeof运算符的使用示例3.2 表 达 式 表达式一般是由运算符、圆括号和操作数构成。操作数可以是常量、变量或函数等。使用不同的运算符可以构成不同类型的表达式,如 算术表达式 赋值表达式 关系表达式 逻辑表达式等。表达式的书写:操作数、运算符、圆括号之间可以加空格,使得表达式更易读。3.2 表 达 式1.左值表达式和右值表达式 在C+中,左值就是在赋值中放在赋值运算符左边的值,可以是一个引用到对象的表达式,通过左值我们可以取出该对象的值。右值就是在赋值中放在赋值运算符右边的值。与左值不同的是右值只能出现在赋值的右边,不能出现在赋值语句的左边。2.算术表达式 由算术运算符、位运算符和操作数组成的符合语法规则的序列称为算术表达式,算术表达式的值为整型或实型。3.2 表 达 式3.赋值表达式 赋值运算符“=”的作用是将一个数赋给一个变量,当然也可以将一个表达式赋给一个变量,赋值表达式要求赋值运算符左边必须是左值,其功能是用右值表达式的值修改左值。赋值表达式一般形式为:;对赋值表达式说明以下几点。(1)赋值表达式的值是其左操作数的值,其结果的类型为左操作数的类型。(2)赋值操作具有低优先级。赋值运算符的优先级是低于除逗号运算符以外的任何操作符。(3)赋值表达式的值类型为左值类型。3.2 表 达 式4.关系表达式 关系表达式是用关系运算符连接两个数值表达式形成的式子。一般形式为:;关系表达式的求值结果只有逻辑值0或1。关系运算符“=”用来判定两个操作数是否相等。5.逻辑表达式 逻辑表达式类似于关系表达式,是用逻辑运算符连接起来的表达式。其一般形式为:;当逻辑关系成立时,其运算结果为真;反之,为假。3.2 表 达 式6.逗号表达式 由逗号运算符和操作数组成的符合语法规则的序列。其一般的形式为:,.,逗号表达式按从左到右的顺序依次求出各表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。7.表达式语句 任何一个表达式后加上分号“;”就构成了表达式语句。其一般格式为:;8.空语句 空语句仅由一个分号组成,用来作空循环体。3.3 运算符优先级和结合性 优先级是指在同一个表达式中,多个运算符出现时,运算符处理的顺序,而不管它们在表达式中位置上的前后关系。结合性是指相邻的几个优先级相同的运算符的运算顺序,结合性也称为结合方向,有从左到右和从右到左两种:左结合性:运算对象先与左面的运算符结合,也就是从左到右运算;右结合性:运算对象先与右面的运算符结合,也就是从右到左运算。在对表达式求值时,如果在一个运算对象两侧的运算符优先级相同,则按规定的运算符结合性处理。3.4 类 型 转 换3.4.1 3.4.1 自动类型转换自动类型转换3.4.2 3.4.2 强制类型转换强制类型转换3.4.3 3.4.3 赋值转换赋值转换3.4.4 3.4.4 逻辑表达式求值的优化逻辑表达式求值的优化3.4.1 自动类型转换 在C+中,如果编译器看见一个表达式或者函数使用了不合适的类型,通常会进行自动的类型转换,即自动将表达式中的操作数转换成所需类型的值。一个表达式中不同数据类型的数据进行混合运算时,C+语言将两个不同类型的操作数自动转换成同一类型的操作数,然后再进行运算。各种基本数据类型之间的自动类型转换规则如图3.1所示。3.4.1 自动类型转换 转换规则是将低精度类型的数据转换为高精度类型的数据,因此在数据转换过程中,数据的精度不会损失。在处理表达式的过程中,并不是将低优先级的变量直接转换成高优先级的变量,而是在表达式处理的过程中,按照需要进行变换。3.4.2 强制类型转换 强制类型转换(也称显示类型转换)是由程序员在程序中用类型转换运算符明确指明的转换操作。强制类型转换的一般形式为:()或者 ()()3.4.3 赋值转换 赋值表达式中,当赋值运算符左值表达式的类型与右值表达式的类型不同,且数据类型兼容时,将进行类型转换,C+语言先计算出右值表达式的值,然后将其转换为左值的类型后赋给左值。转换的准则为:(1)将精度低的变量赋值给精度高的变量时,数值保持不变。(2)将精度高的变量赋值给精度低的变量时,可能出现部分数值丢失。3.4.4 逻辑表达式求值的优化 逻辑表达式求值的优化:在逻辑表达式求值时,一旦能确定其值,则不必再逐步求值。

    注意事项

    本文(第3章运算符和表达式.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开