以下是引用shiyunxu在2007-9-24 10:00:46的发言:
程序1:
a=2;
b=(++a)+(a++)+( a--)+(--a);
printf("d",b);
程序2:
a=2;
printf("d",(++a)+(a++)+( a--)+(--a));
两程序的运行结果分别为8,12。
请问为何??
printf后面的是%d,%这个符号是格式说明符号,别丢了》。。
这个运行结果没有错误.你自己想想,你的编译器如果错了,那还弄什么编程啊。。呵呵。。
我亲自试验过了,TC下面,第一个题目是8,VC下面,结果是11,GCC下面,结果也是11.
第二个题目,TC下面是12,VC下面也是11,GCC下面也是11.
总结,楼主使用的是古董TC编译器.TC编译器的顺序是:
第一题目:从左向右,最后a是2.4个2加起来是8
第二题名:从右向左,最后a是3.4个3加起来是12