黑马程序员技术交流社区

标题: int x =5;x=x+(x++)+(++x);后x的值是多少? [打印本页]

作者: 408213555    时间: 2015-10-29 22:14
标题: int x =5;x=x+(x++)+(++x);后x的值是多少?
上了基础班一段时间我的同桌是一个喜欢上网研究怪题的人他给了我一道题int x =5;x=x+(x++)+(++x);后x的值是多少?我直接说是19他告诉我是17,我愣了一下仔细看了一下发现是17,而且很简单:计算机内部的加法器,只能让两个数相加,那么上述的式子就可以拆解成x=x+(x++)分割+(++x); 对于前半部分很好理解,x=x+x=5+5,内存中x=x+1。x=6。。后半部分++x,先增一在使用,内存中x=x+1。x=7。 最终x=5+5+7=17。这个用来坑初学者是个很好的东西,同时引发了我对编程学习的思考,我在学习编程的时候很多时候还是习惯性的按照以前数学的习惯来思考,这是不对的,应该习惯用编程的规则来看待问题,不知道有没有和我一样的初学者

作者: 野出岔子    时间: 2015-10-30 00:00
不是5+6+6么。。
作者: rickyli    时间: 2015-10-30 00:10
学习了 谢谢分享
作者: Sayman    时间: 2015-10-30 08:36
恩  是的.....
作者: 切比雪夫    时间: 2015-10-30 09:45
问一下运算的时候不是先算括号里面的吗?最后再加上x???




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