在vc中
int x,a; x=4; a=x-x--; printf("a=%d",a);// a=0,x=3
//小小贝的 x+=x-=x-x--; ==>x+=x-=4-4-- 出问题了吧 3
int x,a; x=4; x=x-x--; printf("x=%d",x);// x=-1
在tc中
原题结果就是8
----------------解决方案--------------------------------------------------------
对哦.....但不明白VC是怎么得到7的?????
----------------解决方案--------------------------------------------------------
这种题目真是BT啊?有谁知道VC下为什么会是7的.........
----------------解决方案--------------------------------------------------------
按C语言符合赋值运算的规则,我算的结果是8(口算的没机器运行证实)
x-x-- 的结果是 -1 吧
----------------解决方案--------------------------------------------------------
我算了一下...貌似VC里面7就是我上面那种算法算过来的...
x+=x-=x-x--;
==>x+=x-=4-4--
==>x+=x-=0
==>x+=x=4-0
==>x+=4
==>x=4+4
==>x=8
最后x--
==>x=7;
TB中是:
x+=x-=x-x--;
==>x+=x-=3-4--
==>x+=x-=-1
==>x+=x=3-(-1)
==>x+=4
==>x=4+4
==>x=8
感觉VC是先算运算,再求++/--
而TB是先算++/--,再求运算的
不知道对不对.有哪位大侠知道啊????
----------------解决方案--------------------------------------------------------
这道题我想问问得8的怎么算出来的?
如果x+=x-=-1;
x-=-1 -> x=4-(-1) -> x=5
x+=5 -> x=4+5=9
怎么得出来的8 ???
我用VC编译出来是7,我已经迷糊了!
----------------解决方案--------------------------------------------------------
貌似编译器不同算法不同,VC里面结果是7,但TC里面结果是8.....我不知道我前面说的对不对....有达人没有????
----------------解决方案--------------------------------------------------------
这种题目就没有必要争论了吧,一点实用价值都没有
----------------解决方案--------------------------------------------------------
百度也拿这种无聊的题出来考?看来中国的企业真是悲啊!
----------------解决方案--------------------------------------------------------
晕了到底得多少呀
----------------解决方案--------------------------------------------------------