黑马程序员技术交流社区
标题:
关于自增问题的困惑~~~~~~~~~~~~~~~~
[打印本页]
作者:
李斌
时间:
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