#include<stdio.h>
main()
{int c=5;
printf("%d,%d,%d\n",c+=c++,c+8,++c);
c=5
printf("%d\n",c+=c++,c+8,++c);
}
为何在vc++里是12,14,6
            13
而在Turboc2里是13,14,6
               13
但按运算优先级来看的话,应是13,14,6 
                          13         这个才对,怎么回事??????

解决方案 »

  1.   

    1、一个是MS的编译器,一个是Borland的编译器,当然会有不同
    2、没必要研究这个问题吧
      

  2.   

    不是对++的处理方式不同,而是各种编译器对参数处理不同VC从右开始处理参数,而TC把参数全部放在栈中处理完后再输出
      

  3.   

    vc++ 计算过程是优化的,c++,的执行过程是取出c的值放到寄存器里,然后把寄存器里的值加过之后放回变量。所以等于12。
    Turbo c未经优化,死板地按语法进行。于是Turbo c的程序比vc++ 的程序慢。
    所以我们要用vc++ 。