请教:为什么同样的程序会有不同的结果?
#include <stdio.h>void main()
{
int i=8;
printf("%d\t%d\t%d\t\n",++i,--i,i++);
return;
}
这个很简单的程序,为什么VC编译运行的结果是8,7,8,gcc编译运行的结果却是9,9,8呢?同一程序的结果都不是唯一的,那谁还敢随便使用包含多个的自增和自减语句吗? 因为C语言标准本本来就规定这样的程序运行结果不唯一啊,任何合法的C语言编译器都可以有自己的解释。
“那谁还敢随便使用包含多个的自增和自减语句吗?”你终于体会到了,真正开发的时候没人敢用这样的语句,用了,也要被别人逼着改回来。
页:
[1]