[讨论]一个有趣的现象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很正常!
[解决办法]
我测试了你这个程序,没有任何问题啊!