[讨论]一个有趣的现象j=0 j++后,j居然等于3,有人知道原因吗?该怎么解决
[讨论]一个有趣的现象j=0 j++后,j居然等于3,有人知道原因吗?
代码很简单如下,用的是VC6 sp6:
编译后的运行效果也OK,问题在于单步调试,如果在第6行打个断点,一步步跟踪,会发现j++后j的值为3了,全部单步下来的截图给大家看下,有人知道为什么吗?
------解决方案--------------------
不要用VC6。
------解决方案--------------------
没有VC6的表示vs2010很正常!
------解决方案--------------------
我测试了你这个程序,没有任何问题啊!
代码很简单如下,用的是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很正常!
------解决方案--------------------
我测试了你这个程序,没有任何问题啊!