如何不用临时变量交换两个数

1. 算术运算法(同样适用于乘除运算)

int x=1,y=2;
x=x+y;
y=x-y;
x=x-y;

 2. 异或运算法

int x=1,y=2;
x=x^y;
y=x^y;
x=x^y;

 

注意:

(1)对于乘除运算,如果有一个操作数是0,则上述算术运算法失效;

(2)注意加乘会造成溢出;

(3)对于上面的方法,指针交换容易错(此处省去细节);

 

参考链接:https://www.geeksforgeeks.org/swap-two-numbers-without-using-temporary-variable/

posted @ 2021-08-24 19:28  细妹  阅读(39)  评论(0)    收藏  举报