Chmal

C++博客 首页 新随笔 联系 聚合 管理
  0 Posts :: 1 Stories :: 0 Comments :: 0 Trackbacks
代码如下:
int intArray[10];
int index;
for( index = 0; index < 10; ++index)
{
    intArray[index] = index;
}
for( index = 0; index < 10; index++)
{
    intArray[index] = index;
}
    最近在学习的过程中,发现上述代码中两个for循环的结果是一样的。

    就自己所知,++index与index++本身并不是一样的。为了弄清楚是什么原因导致上面的问题,就google了一些
 相关的文章,其中绝大部分都说出了++index与index++的不同:
     ++index是先index + 1,然后在用到index的时候直接返回index(即++index的值就是index+1),而index++则是要通过一个中间变量来存储index + 1的值,index的值并不变化(即index++的值就是index)。 
   按照上面的解释,前面的代码执行的结果应该不同才对,究竟是什么原因导致这样的结果呢?
   有一篇文章上的解释是这样的:
   for( index = 0; index < 10; ++index)
   {
       intArray[index] = index;
   }
   等价于:
    for( index = 0; index < 10)
   {
       intArray[index] = index;
       ++index;
   }
   看过之后,我觉得应该是很有可能的,为了验证一下,我反汇编了一下上面的代码,结果验证了这篇文章的说法,截图如下:
 
   在这里留下自己的体会,以备自己日后查阅。
posted on 2009-11-17 11:51 Chmal 阅读(209) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理