VC与TC对同一程序编译出不同结果,怎么回事?
/*测试自加自减运算优先级*//*VC++6.0编译*/#include <stdio.h>#include <math.h>#include <iostream.h>#include <conio.h>void main(){ int x=5; long y1,y2,y3,y4; y1=(x++)+(x--)+(++x)+(--x); x=5; y2=(x--)+(x++)+(--x)+(++x); x=5; y3=(++x)+(--x)+(x++)+(x--); x=5; y4=(--x)+(++x)+(x--)+(x++); cout<<"y1="<<y1<<endl; cout<<"y2="<<y2<<endl; cout<<"y3="<<y3<<endl; cout<<"y4="<<y4<<endl; getch();}RESULT>>y1=21y2=19y3=20y4=20--------------------------/*测试自加自减运算优先级*//*TC2.0编译*/#include <stdio.h>#include <math.h>void main(){ int x=5; long y1,y2,y3,y4; y1=(x++)+(x--)+(++x)+(--x); x=5; y2=(x--)+(x++)+(--x)+(++x); x=5; y3=(++x)+(--x)+(x++)+(x--); x=5; y4=(--x)+(++x)+(x--)+(x++); printf("y1=%ld尀ny2=%ld尀ny3=%ld尀ny4=%ld尀n",y1,y2,y3,y4); printf("Complet>>>"); getch();}RESLUT>>y1=20.000y2=20.000y3=20.000y4=20.000呵呵,好眼力,我第一次运行的时候用的是实型.应该是:y1=20y2=20y3=20y4=20有看法,或者考虑方向的都多多发言啊,兄弟在这里谢谢了.