数字类型不引入第三个变量就交换两个元素的值!

算术运算

1 int a,b;
2 a=10;b=12;
3 a=b-a; //a=2;b=12
4 b=b-a; //a=2;b=10
5 a=a+b; //a=12;b=10

它的原理:把a,b看做数轴上的两个点。
第一句“a=b-a”求出了ab两点之间的距离,并且将其保存在a中;
第二句“b=b-a”求出了a到原点的距离(b到原点的距离减去ab两点距离),并且将其保存在b中;
第三句“a=b+a”求出了b到原点的距离(a到原点的距离加上ab两点距离),并且将其保存在a中。

缺点:只能用于数字类型,字符串的交换就不行。

你可能感兴趣的:(数字类型不引入第三个变量就交换两个元素的值!)