C语言实现交换两个数

C语言中要实现交换两个变量的值可以有很多种方法,下面是我收集的方法:

方法一:使用临时变量

void exchange(int *a, int *b) { int temp = 0; temp = *a; *b = *a; *a = temp; }

方法二:不使用临时变量

void exchange(int *a, int *b) { *a = *a + *b; *b = *a - *b; *a = *a - *b; }

另外一种使用异或操作的

void exchange(int *a, int *b) { *a ^= *b *b ^= *a *a ^= *b }

 

比上面更简单的,可以写成一句话

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

还有用汇编实现的:

int x = 12, y= 19; _asm { push x; push y; pop x; pop y; } printf("x is %d, y is %d /n", x,y);

 

 

你可能感兴趣的:(C/C++学习总结)