关于交换算法,我想非常简单,所以,这次不做分析,直接上代码:
#include <stdio.h> #include <stdlib.h> //用异或方式实现 void swap(int *a,int *b) { *a^=*b; *b^=*a; *a^=*b; } //用指针加减运算的方式实现 void swap1(int *a,int *b) { *a+=*b; *b=*a-*b; *a=*a-*b; } int main(void) { int a = 3 , b = 2 , c = 1 , d = 4; swap(&a,&b); printf("%d %d\n",a,b); swap1(&c,&d); printf("%d %d\n",c,d); return 0 ; }
运行结果: