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;
}
这种做法就不必担心溢出
posted @ 2017-06-20 19:38  zy010101  阅读(655)  评论(0编辑  收藏  举报