C

C语言中两个变量的交换

有童yt_hy · 6月20日 · 2025年 · · 本文共165个字 · 预计阅读1分钟59次已读

临时变量

void swap(int *x, int *y){
int temp;
  temp = *x;
  *x = *y;
  *y = temp;
}

算术法

a = a + b;
b = a - b;   /* 此时 b 得到原来的 a */
a = a - b;   /* 此时 a 得到原来的 b */

按位异或(XOR)法

a ^= b;
b ^= a;
a ^= b;

此处涉及二进制的按位异或计算,也就是所谓的1 0为1,其他为0.