- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                04c运算符及表达式090221
                    第4章  运算符和表达式;    C语言运算符之多, 在高级语言中是少见的。但运算符的多样性和表达式的灵活性对于一个C语言的初学者来说很可能会成为机关重重的陷阱。;4.1.1  C语言运算符的种类 ;4.1.2 C语言运算符的特性 ;  4.1.3 C语言表达式的特性 ;    在同一个算术表达式中,如果参与运算的两个运算对象的数据类型不一致时,系统将自动把其中的一个进行类型转换,使两个运算对象的类型一致后再进行运算。自动转换的规则是:按“短向长靠拢”的原则进行转换。所谓“短向长靠拢”是指:占用存储空间较短的数据对象向占用存储空间较长的数据对象转换。 ;4.2  基本运算;4.2.2  算术运算;    一个合法的C算术表达式在某些情况下并不能产生预期的结果,甚至会导致程序非正常终止。这些情况被称为算术异常。算术异常要归咎于算术的自然本质(比如除以0)或归咎于计算机的自然本质(比如溢出)。所谓溢出(Overflow),是指表达式的结果超出了被赋值对象的表示范围。因为计算机本身就是有限的,所以,任何数据类型的表示范围都是有限的。因此,当数值变得过大或过小,计算机都因为不能表示而产生溢出,前者称为上溢,后者称为下溢。上溢是指运算过程中的数据的绝对值大到机器无法表示,计算机认为该数是正(负)无穷大而中断程序运行的现象;下溢是指运算中的非零数据的绝对值小到计算机在规定的字长下无法将其表示成一个非零数,而将该数强制为零的现象。;  /* 本程序测试整型数的上溢 */
  #includestdio.h
  int main()
  {
    int x = 10000;
    printf(x = %d\n,x=x*x);
    printf(x = %d\n,x=x*x);
  }
  程序输出为:
        x = -7936
        x = 0;   /* 本程序测试实型数的上溢 */
  #includestdio.h
  int main()
  {
      float x = 100000.0;
      printf(x = %g\n,x=x*x);
      printf(x = %g\n,x=x*x);
      printf(x = %g\n,x=x*x);
  }
  程序输出为:
        x = 1e+10
        x = 1e+20
        Floating point error:Overflow.;    可见,整型数溢出和实型数溢出之间的差别。前者以错误的结果继续运行,后者一旦溢出就终止运行并报告错误。;4.4.3  关系运算;   /* 本程序测试关系表达式数据对象的自动转换 */
  int main(void)
  {
     char c=’A’;
     int i=10,j=20;
     float x=3e+2,y=1.88;
     printf(%d\n,’B’-1c);
     printf(%d\n,x+i=y+j);
  };设有如下定义:
    int a = 30, b = 20, c = 10;
对于关系表达式
        a = b = c
读者只需运用小学的数学知识就能推断其逻辑关系是成立的,也就是说该表达式的结果应该等于1,但在C语言中,其结果是0,这个结果意味着上述表达式的逻辑关系不成立。 ;4.2.4  逻辑运算符;对于表达式:
        exp1  exp2
        exp1 || exp2
如果下列条件有一个满足:
   (1)在逻辑与表达式中,exp1的计算结果为0;
   (2)在逻辑或表达式中,exp1的计算结果为1
则整个表达式计算完毕,即exp2保证不会被计算。这个特性,我们称其为短路。;    例如,设有定义:
        int a = 1,b = 2,c = 3;
在计算表达式
        a  b || (b=0)  (c=0)
时,并不因为“”优先级高于“||”而先作“”运算。根据短路特性,它等价于:
        a  b || ((b=0)  (c=0))
因此要特别注意这一短路特性。;4.2.5  自增和自减运算;    后缀++: ;假设我们有一个变量k的值为5:
            y= ++k+10;
             y= k++ +10;
             y=--k +10;
             y=k-- +10;
             y=(k+=k++);
;    当一个变量是含有多个函数参数中的一部分时,不要将自增自减运算作用于这样的变量。;4.3  其它运算 ;4.3.3  条件运算;  
                您可能关注的文档
最近下载
- 基于隐私保护的社会性别劳动分工信息共享底层协议与算法实现.pdf VIP
 - 根据多波束水深数据估算人工鱼礁空方量的方法.pdf VIP
 - 如何理解“作风建设永远在路上,永远没有休止符”?我们应如何加强作风建设? (3) .doc VIP
 - 2025年咨询工程师环保项目现金流量表的编制与环境效益量化专题试卷及解析.pdf VIP
 - 联通华盛终端连锁化运营项目-销售管理培训.pdf VIP
 - 临时用电验收要点:国标GB50194-2014.pdf VIP
 - 综合交通运输体系规划编制技术导则.pdf
 - 2025至2030中国铝合金压铸件行业投资策略及应用需求潜力研究报告.docx VIP
 - 医院重大事件请示报告制度.docx VIP
 - 金风25MW机组运行维护手册.pdf VIP
 
原创力文档
                        

文档评论(0)