C#这个a=b+(b=a)*0;为什么能交换a和b的值呢?
来源:百度知道 编辑:UC知道 时间:2024/05/14 10:58:52
不懂,希望有朋友可以解释一下,a=b+(b=a)*0;为什么可以交换a和b的值?
这个是一道题的答案,题大意为:"不经过第3方变量,将a和b交换,代码越短越好."我的答案是a=a+b;b=a-b;a=a-b; 但正确答案是a=b+(b=a)*0; 并且我在VS2005下测试了,确实将a和b交换了.不明白,我开始也考虑优先级的问题了,但那么考虑感觉不对.....
这个是一道题的答案,题大意为:"不经过第3方变量,将a和b交换,代码越短越好."我的答案是a=a+b;b=a-b;a=a-b; 但正确答案是a=b+(b=a)*0; 并且我在VS2005下测试了,确实将a和b交换了.不明白,我开始也考虑优先级的问题了,但那么考虑感觉不对.....
这是优先级问题,执行顺序的问题撒
现执行()里面的,他的优先级高
b=a
已经将a的值转给b
然后*0,值为0,
a=b+0
不过按照优先级,实际结果应该是
a等于 a最先的值。
比如:
a=8
b=9
最后
b=8
a=8
这个你说A B值交换问题。我没想明白。
不知道是不是我没理解对
===============
看来我对优先级理解还是不够深刻。。我也不明白。。
对,优先级别的问题啊
C#这个a=b+(b=a)*0;为什么能交换a和b的值呢?
|a|-|a-b|+|a+b|=?
a>0 b>0 a.b=a+b+1 求a+b最小值
已知|a+b|-|a-b|=0,化简|a^1999+b^1999|+|a^1999-b^1999|
如果A*A+B*B-2A+4B=0,求A*B最值
a*b*x*x-(a*a*a*a+b*b*b*b)*x+a*a*a*b*b*b=0的解(a*b不等于0,a和b是常数
设a,b∈R ,集合{1,a+b,a}={0,b/a,b},则b-a=
已知a+2b=0,求a*a*a+2ab+(a+b+4*b*b*b的值
初一数学题..(a+b)(a-b)+c(a+b)为什么=(a+b)(a-b+c)
定义这个运算:a*b=ab+a-b,a,b均为实数,求a*b+(b-a)*b等于多少?