第一种方法:数学运算,这种方法有溢出的风险
#include<stdio.h> #include<stdlib.h> int main() { int a = 1; int b = 2; printf("交换前:a=%d,b=%d\n", a, b); a = a + b; b = a - b; a = a - b; printf("交换后:a=%d,b=%d\n", a, b); system("pause"); return 0; }
第二种方法:按位异或运算
#include<stdio.h> #include<stdlib.h> int main() { int a = 1; int b = 2; printf("交换前:a=%d,b=%d\n", a, b); a = a^b; b = a^b; a = a^b; printf("交换后:a=%d,b=%d\n", a, b); system("pause"); return 0; }