交换两个变量的值,不引入第三个变量(C语言)

第一种方法:数学运算,这种方法有溢出的风险

#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;
}

猜你喜欢

转载自blog.csdn.net/fistraiser/article/details/80206807