运行结果是多少
main()
{ int a=9;
a+=a-=a+a;
printf(“%d\n”,a);
}
----------------解决方案--------------------------------------------------------
-18
视编译器而定,,,,,一般用的编译器都是从右向左编译的..so.....
a+=a-=a+a;//先算a+a得18
再算a-=(a+a)//即a=a-(a+a)=9-18=-9,此时a值变为-9
再算a+=... 即a=-9+(-9)=-18
[此贴子已经被作者于2006-4-3 21:25:28编辑过]
----------------解决方案--------------------------------------------------------
我在VC++里面运行了一下,是-18。
同意楼上的说法。
----------------解决方案--------------------------------------------------------
winTC下是-18
TC2.0下也是-18
----------------解决方案--------------------------------------------------------
-18了答案是正确的
----------------解决方案--------------------------------------------------------
从右到左算,-18
在GCC-3.4下通过
----------------解决方案--------------------------------------------------------