C语言交换两个数字的三种做法

C语言交换两个数字的三种做法

1.借助中间变量法:

void swap(int *a , int *b)
{
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;
}
2.使用加减法运算法:
void swap(int *a ,int *b)
{
	*a = *a + *b;
	*b = *a - *b;
	*a = *a - *b;
}
这种做法可能会导致溢出,从而造成错误。
3.使用位运算法:
void swap(int *a ,int *b)
{
	*a = *a ^ *b;
	*b = *a ^ *b;
	*a = *a ^ *b;
}
这种做法就不必担心溢出
原文地址:https://www.cnblogs.com/zy666/p/10504360.html