网站大量收购独家精品文档,联系QQ:2885784924

C语言实例教程(第3版)课件 5.7 其他运算符.pptx

C语言实例教程(第3版)课件 5.7 其他运算符.pptx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

主讲人:谢宇C程序设计精品在线开放课程

单元五运算符与表达式5.7其它运算符

自增运算符逗号运算符0102目录

自增量运算符:++(增1)、--(减1)自增量运算符均有两种使用形式,++a、a++及--a、a--,也称为前缀形式和后缀形式。左值(lvalue)和右值(rvalue)12

inta;//整型变量a可以作为左值使用floatb;//单精度浮点型变量b也可作为左值使用constintc;//因为常变量c的值不允许改变,故不可作为左值使用计算机内存中可修改的存储对象,一般称为左值或lvalue

把可赋值给左值的量称为右值或rvalue。右值可以是常量、变量或者表达式。inta,b;//定义整型变量a和ba=2;//把常量2作为右值,赋给左值ab=a;//把变量a作为右值,赋给左值bb=a+3;//把表达式a+3的值作为右值,赋给左值b

前缀形式:如++a为前缀加形式的增1表达式,表示把变量a的值加1后的值作为该表达式的值,同时变量a本身的值加1;--a类似,表示把变量a的值减1后的值作为该表达式的值,同时变量a本身的值减1。

则语句b=a++;与b=++a;的含义不同。若采用第一条赋值语句,则直接把a的原值5赋给变量b。若采用第二条赋值语句,则把a的原值5加1后的值6赋给变量b。相同的是,这两种赋值方式均使变量a自身的值增了1,即执行完后,a均为6。例如:inta=5,b;前缀形式:

如a++为后缀加形式的增1表达式,表示先直接把变量a原来的值作为该表达式的值,然后变量a本身的值加1;a--类似,表示先直接把变量a原来的值作为该表达式的值,然后变量a本身的值减1。后缀形式:

例如:floata=3.2f;a++;printf(a=%f\n,a);执行完自增量运算后,输出a=4.200000。建议在实际编程中,应尽量避免对浮点型变量进行自增量运算操作。通过下面的例子,掌握前缀增1与后缀增1两种使用形式的异同。后缀形式:

分析以下程序,输出其运行结果。#includestdio.hintmain(void){inta=2,b,c,d;b=++a+4;c=3*a++;d=a--*3;printf(a=%d,b=%d,c=%d,d=%d,a,b,c,d);return0;}

代码分析:1)b=++a+4;该语句中运用到三个运算符:前缀增1运算符++、加法运算符+和赋值运算符=,三个运算符的优先级是一元运算符++最高,其次是求和,最低的是赋值运算符。该语句等价于b=(++a)+4;先取变量a的值2加1后的结果3作为++a表达式的值

代码分析:然后把该表达式的值3与4求和的值1赋值给变量b,即b值为7。执行完该语句后变量a自身值增1,其值变为3。2)c=3*a++;等价于c=3*(a++);表示把3与a++求积的结果赋给c,而a++表达式表示先把变量a的值3作为该表达式的值,即c=3*3;同时变量a自身值增1,变为4。

代码分析:3)d=a--*3;先取变量a的值4作为表达式a--的值,把4*3的值12赋给变量d。同时变量a自身减1,变为3。4)printf(a=%d,b=%d,c=%d,d=%d,a,b,c,d);双引号中有4个输出格式控制符,依次使用输出列表中4个输出项a、b、c、d的值替换。运行结果为:a=3,b=7,c=9,d=12

增1、减1运算符的副作用注意,增1、减1运算符是具有副作用的运算符,即不仅能改变表达式的值,也改变了变量自身的值。使用时要慎重,尤其以下两种情况,要避免使用。

增1、减1运算符的副作用1)当一个变量多次出现在某表达式中时,建议不要将增1或减1运算符应用于该变量。例如:inta=1;//定义整型变量a,并赋初值1。intb;//定义整型变量b,未初始化。b=a+++a++;//杜绝编写类似的表达式

增1、减1运算符的副作用a+++a++该表达式的值到底是两次取a的原值1相加的结果2赋给b,即b=2=1+1,还是按从左到右取a原值1作为第一个a++表达式的值,同时变量a增1变为2。第二个表达式的值为取a的值2作为表达式的值,同时变量a增1,变为3,这样b=3=1+2,还是从右到左依次运算。C标准没有对此进行统一规定,不同

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档