百度面试题
大家看看这道题应该是什么?我看后觉得应该是选C,但是放到win-tc里面测试 结果却是8,谁对阿?#include "stdio.h"
main()
{int x;
x=4;
x+=x-=x-x--;
printf("x=%d",x);
getch();
}
----------------解决方案--------------------------------------------------------
运行下不就OK了嘛。。。呵呵~
----------------解决方案--------------------------------------------------------
是呀 我运行后和百度给的答案不一样
----------------解决方案--------------------------------------------------------
呵呵!我运行的结果是7啊!
----------------解决方案--------------------------------------------------------
唉,如果楼主能踏实求教,我想这里会有"更多高手"帮助你.
如果这是百度的面试题,我可以断言,百度就此开走下坡路了!你不去也罢!
----------------解决方案--------------------------------------------------------
应该是8的(个人认为),大家可以看: x+=x-=x-x--;,首先:最右边的x--表达式中的x先取出自己的值4,然后自减,则最右边的赋值号的右边的运算为3-4,值为-1,然后是x-=-1,此时x为3,则赋值后,x=3-(-1)=4,最后是最左边的赋值号的执行:x=4+4,即表达式的值为8.
----------------解决方案--------------------------------------------------------
偶新手上路,望各位大虾多多指教
----------------解决方案--------------------------------------------------------
x-x--的值是-1吗?我怎么感觉是1呢!
----------------解决方案--------------------------------------------------------
我用VC算下来是X=7
x+=x-=x-x--;
==>x+=x-=4-4--
==>x+=x-=0--
==>x+=x=4-0--
==>x+=4--
==>x=4+4--
==>x=8--
==>x=7;
----------------解决方案--------------------------------------------------------
我用gcc编译出来是输出:
x=7
----------------解决方案--------------------------------------------------------