goldship 发表于 2015-4-2 09:11:20

请教:为什么同样的程序会有不同的结果?

#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呢?同一程序的结果都不是唯一的,那谁还敢随便使用包含多个的自增和自减语句吗?

仰望天上的光 发表于 2015-4-5 09:55:54

因为C语言标准本本来就规定这样的程序运行结果不唯一啊,任何合法的C语言编译器都可以有自己的解释。
“那谁还敢随便使用包含多个的自增和自减语句吗?”你终于体会到了,真正开发的时候没人敢用这样的语句,用了,也要被别人逼着改回来。
页: [1]
查看完整版本: 请教:为什么同样的程序会有不同的结果?