当前位置: 代码迷 >> C语言 >> 百度面试题
  详细解决方案

百度面试题

热度:50   发布时间:2006-11-11 14:17:25.0
百度面试题
大家看看这道题应该是什么?我看后觉得应该是选C,但是放到win-tc里面测试 结果却是8,谁对阿?
#include "stdio.h"
main()
{int x;
x=4;
x+=x-=x-x--;
printf("x=%d",x);
getch();
}
搜索更多相关的解决方案: 百度  面试  int  main  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
----------------解决方案--------------------------------------------------------
  相关解决方案