2636| 9
|
为什么这样啊,理解不到? |
5啊哈币
最佳答案给每一步的a,b都加上下标,推导一遍就知道了
a1=b-a; //a1是第一步里面的新值,a,b是原始数据
b2=b1-a1=b1-(b-a)=b-(b-a)=a;
a3=b2+a2=a+(b-a)=b;
所以三步计算之后,b3=b2=a, a3=b,完成了交换
这是很久之前使用的一个小技巧,当时存储区价格非常昂贵,这样写可以节省一个变量的空间,所以就有了这种写法
现在存储器很便宜,所以一般这么写
int temp;
temp = a;
a = b;
b = temp;
以提高程序的可读性
| |||||||||||||||||||
| ||
| ||
| ||