黑马程序员技术交流社区

标题: 刚看到的,非常不理解,不敢相信 [打印本页]

作者: vipzh    时间: 2012-12-5 16:38
标题: 刚看到的,非常不理解,不敢相信


不使用第三个数的情况下,交换a,b的值
a = a+b-(b=a)

求高手解释下

作者: 坚持远方    时间: 2012-12-5 16:53
a = (a+b)-(b=a) //比如a=3,b=4
给前面也加个括号比较好理解,结果一样,括号的优先级最大,所以先算a+b=7,然后再把a=3赋值给b,最后用7-3就等于4所以最后a=4,b=3
再给你一种好理解的方法:a = a + b;
                 
           b = a - b;
         
            a = a - b;
作者: 黄嵘才    时间: 2012-12-5 17:33
坚持远方 发表于 2012-12-5 16:53
a = (a+b)-(b=a) //比如a=3,b=4
给前面也加个括号比较好理解,结果一样,括号的优先级最大,所以先算a+b ...

学习了。实际不提倡使用。

a=a+b
b=a-b
a=a-b




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