注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小崔讲课

有舍有得,谓之舍得

 
 
 

日志

 
 

一个有关自增、自减运算符的程序分析  

2008-01-05 14:44:04|  分类: 编程语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

说明:

自增1,自减1运算符:自增1运算符记为“++”,其功能是使变量的值自增1。

自减1运算符记为“--”,其功能是使变量值自减1。

自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式:

        ++i    i自增1后再参与其它运算。

        --i    i自减1后再参与其它运算。

        i++    i参与运算后,i的值再自增1。

        i--    i参与运算后,i的值再自减1。

原程序:

#include"stdio.h"

main()

{

       int i=8;

       printf("i=%d,++i=%d,i=%d\n",i,++i,i);

       printf("i=%d,--i=%d,i=%d\n",i,--i,i);

       printf("i=%d,i++=%d,i=%d\n",i,i++,i);

       printf("i=%d,i--=%d,i=%d\n",i,i--,i);

       printf("i=%d,-i++=%d,i=%d\n",i,-i++,i);

       printf("i=%d,-i--=%d,i=%d\n",i,-i--,i);

       printf("i=%d,-++i=%d,i=%d\n",i,-++i,i);

       printf("i=%d,-(--i)=%d,i=%d\n",i,-(--i),i);

}

分析:i初始值为8,对于逗号运算符(,),应先从右边算起,

第五行:首先给最右边的i赋值(此时i=8),i=     ,++i=     ,i=8;

        然后对++i进行自增1然后参与其他运算,i=    ,++i=9,i=8;

        最后对最左边的i进行赋值(此时i=9),i=9,++i=9,i=8;

第六行:同第五行分析,输出结果为i=8,--i=8,i=9;(此时i=8)

第七行:首先给最右边的i进行赋值(此时i=8),i=     ,i++=   ,i=8;

        然后对i++先进行其他运算(赋值)(此时i=8),i=    ,i++=8,i=8;

        再对最左边的i进行运算(赋值)(此时i=8),i=8,i++=8,i=8;

        最后i++进行自加1运算,输出结果为i=8,i++=8,i=8,但是此时i=9;

第八行,同第七行分析,输出结果为i=9,i--=9,i=9,(此时i=8);

第九行,同第七行分析,输出结果为i=8,-i++=-8,i=8,(此时i=9);

第十行,同第七行分析,输出结果为i=9,-i--=-9,i=9,(此时i=8);

第十一行,同第五行分析,输出结果为i=9,-++i=-9,i=8,(此时i=9);

第十二行,同第五行分析,输出结果为i=8,-(--i)=-8,i=9,(此时i=8)。

在VC++6.0上的运行输出结果如下:

      i=9,++i=9,i=8

      i=8,--i=8,i=9

      i=8,i++=8,i=8

      i=9,i--=9,i=9

      i=8,-i++=-8,i=8

      i=9,-i--=-9,i=9

     i=9,-++i=-9,i=8

     i=8,-(--i)=-8,i=9

  评论这张
 
阅读(233)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018