关于printf中i++与++i的问题
请问
main()
{ int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}的输出结果是 9 8 8 9 -8 -9
main()
{int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}的输出结果是8 8 7 8 -7 -8
我在VS2010上运行 我觉得上面的代码都是一样的 为什么输出结果会不一样
求好心人帮忙解答一下 谢谢了
[解决办法]
不管在什么函数中什么语句中,同一个语句对某个变量多次++--,结果不确定
所谓不确定不是指每次运行结果不确定,而是指换个编译器该语句的功能就会变化
C/C++语言标准称之为未定义行为,编译器可以自行决定其结果,从报错到系统崩溃都随编译器提供商的心意而定
[解决办法]
请看置顶的帖子。