交换两个变量的值,不使用第三个变量 Nov 27, 2017 方法一:算数法 var a = 10,b = 15; a = b - a;//a = 5, b = 15; b = b - a;//a = 5, b = 10; a = a + b;//a = 15, b = 10; 这样看有点蒙吧,需要画张图,就很明晰了。 方法二:位运算 var a=10,b=12; //a = 1010, b = 1100; a=a^b; //a = 0110, b = 1100; b=a^b; //a = 0110, b = 1010; a=a^b; //a = 1100(12), b=1010(10); 方法三:地址运算 类似方法一,只是不是计算其值,而是计算地址。好处是,不是简单类型,也可以实现。 方法四:利用栈 int exchange(int x,int y) { stack S; push(S,x); push(S,y); x=pop(S); y=pop(S); } 其实这个方法似乎有点违规了 方法五:利用数组 var a=1,b=2;a=[b,b=a][0];