[讨论]一个有趣的现象j=0 j++后,j居然等于3,有人知道原因吗?该怎么解决

[讨论]一个有趣的现象j=0 j++后,j居然等于3,有人知道原因吗?
代码很简单如下,用的是VC6 sp6:

C/C++ code

#include "stdio.h"

int strange()
{
    char tmp[1024] = {0};
    int j = 0;
    
    j++;
    printf("inner value: %d\n",j);
    return j;
}

int main(int argc, char **argv)
{
    printf("outter value: %d\n", strange());   
    
    return 0;
}



编译后的运行效果也OK,问题在于单步调试,如果在第6行打个断点,一步步跟踪,会发现j++后j的值为3了,全部单步下来的截图给大家看下,有人知道为什么吗?



------解决方案--------------------
不要用VC6。
------解决方案--------------------
没有VC6的表示vs2010很正常!
------解决方案--------------------
我测试了你这个程序,没有任何问题啊!