一、
a=1,b=2
我们可以通过简单的计算;
a=a+b;
b=a-b;
a=a-b;
达到相类似的交换变量的目的。
但这种方法不能交换较大的值,可能会导致栈溢出。
二、
第二种方法会用到“换位抑或”,即“ ^ ”,有一个口诀是相同为0,相异为1。
a=a^b;
b=a^b; >> b=a^b^b; >> b=a^0; >> b=a;
a=a^b >> a=a^b^a >> a=b;
如此,便在没有设定临时变量的情况下交换了a与b的值,并且不会出栈溢出的情况。
一、
a=1,b=2
我们可以通过简单的计算;
a=a+b;
b=a-b;
a=a-b;
达到相类似的交换变量的目的。
但这种方法不能交换较大的值,可能会导致栈溢出。
二、
第二种方法会用到“换位抑或”,即“ ^ ”,有一个口诀是相同为0,相异为1。
a=a^b;
b=a^b; >> b=a^b^b; >> b=a^0; >> b=a;
a=a^b >> a=a^b^a >> a=b;
如此,便在没有设定临时变量的情况下交换了a与b的值,并且不会出栈溢出的情况。