黑马程序员技术交流社区

标题: 关于自增问题的困惑~~~~~~~~~~~~~~~~ [打印本页]

作者: 李斌    时间: 2012-5-19 21:05
标题: 关于自增问题的困惑~~~~~~~~~~~~~~~~
原帖请见 http://bbs.itheima.com/thread-14428-1-1.html
我按照 8楼 和 9楼的两个哥们的理解
1. “按照运算顺序,如果只有一个x++,x将在运算后才自增;当存在多个x++参与运算时,最后一个参与运算的x++将在x参与运算后,才自增,
如x+++x+++x++=6+7+5=18,最后一个x在运算和前面做加法运算时,没自增
2. ”x+(++x++);  问题关键是:计算机读取在同优先级时是从左读到右的,也就是先读X然后再读+,这时计算机认为X准备+后面的数据,于是后面 就成为了:
                                                                                            (x+)(++x++) =5+6=11,  ++X大家都应该清楚是属于先加,这点的X是6。后面的++是表达式过后才加,对于结果无影响,忽略掉,后面都如此,不再累述!
                                                                                               所以5+6=11. “     
把那些题目都算 了一下 发现结果完全一致
但是这两种理解方法 是不一样的 不知道到底那种理解才是正确的 实在困惑~~



作者: 孙宇晨    时间: 2012-5-19 21:34
(x+)(++x++) =5+6=11,  ++X大家都应该清楚是属于先加,这点的X是6。后面的++是表达式过后才加,对于结果无影

不能存在++x++这种情况 运算完++X以后 后面的加号会被定义为运算符  也就变成了++x+加号.  是会出错的

作者: 贠(yun)靖    时间: 2012-5-20 12:43
本帖最后由 贠(yun)靖 于 2012-5-20 12:44 编辑

(x+)(++x)++ =5+6=11  这样的  先自增,再相加  在自增   优先级  前++ 优先于  相加“+”  相加有限限于后++
作者: 杨康    时间: 2012-5-20 13:14
我也是被讲的晕乎乎的
作者: 高云飞    时间: 2012-5-20 15:28
贠(yun)靖 发表于 2012-5-20 12:43
(x+)(++x)++ =5+6=11  这样的  先自增,再相加  在自增   优先级  前++ 优先于  相加“+”  相加有限限于后 ...

这么说,就明白多了。




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