黑马程序员技术交流社区

标题: 大家学习一天了,发个简单加法题,谁能说出答案,我服了 [打印本页]

作者: Mr.飞碍特    时间: 2014-4-21 23:31
标题: 大家学习一天了,发个简单加法题,谁能说出答案,我服了
不多说,看见一个蛋疼的题目:关于x=x+(x++)+(++x)问题,这道题到底是17?18?19?答对有奖。。。。。奖品丰厚的说

1.jpg (12.28 KB, 下载次数: 69)

在java中是17

在java中是17

2.jpg (22.3 KB, 下载次数: 68)

javascript也是17

javascript也是17

3.jpg (14.77 KB, 下载次数: 81)

vc++中19

vc++中19

4.jpg (13.44 KB, 下载次数: 69)

在MinGW(gcc的windows实现)中,居然是18,逗

在MinGW(gcc的windows实现)中,居然是18,逗

5.jpg (23.85 KB, 下载次数: 68)

在原生gcc(这里用的是Ubuntu)下,是17

在原生gcc(这里用的是Ubuntu)下,是17

作者: ノtrack    时间: 2014-4-21 23:32
我知道java的就对了    17
作者: Mr.飞碍特    时间: 2014-4-21 23:43
17还是19是个问题...话说18应该是编译软件出错了吧
作者: 清风夜独醉    时间: 2014-4-21 23:45
x的初始值是5
x+(x++)是x++中的x先和前面的x进行运算然后自身再加1,也就是5+5之后,x自增1变成6.
x+(x++)+(++x)中的++x是x先自增1再和前面的表达式进行运算,因为之前x已经变成了6,现在再自增1就变成了7,也就是5+5+7=17.
作者: zzkang0206    时间: 2014-4-25 14:47
你这是什么语言都有
作者: 诺忔。初禾、    时间: 2014-4-25 15:25
x初始值都没有,这个鬼知道
作者: 陈云阳    时间: 2014-4-25 16:29
17 这么简单,以前有老师专门说过这问题哈哈
作者: 1636971198    时间: 2014-4-25 16:43
这题就是17.不过还要说下运算符的优先级,+号是从左到右,++自增是从右到左,至于x++是表达式而非变量它的返回值是x+1;这样就算出答案是17了!
作者: 二小傻    时间: 2014-4-26 09:23
你们在哪看到初始值的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2