代码如下:
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;
}
看过之后,我觉得应该是很有可能的,为了验证一下,我反汇编了一下上面的代码,结果验证了这篇文章的说法,截图如下:

在这里留下自己的体会,以备自己日后查阅。