不创建临时变量,交换两个变量
方法一:运用加减法
#include <stdio.h>
#include <windows.h>
int main()
{
int a = 5, b = 7;//定义两个数
a = a + b;//将它们和赋给第一个数
b = a - b;//用和减去第二个数的结果赋给第二个数
a = a - b;//用和减去新的第二个数
printf("%d,%d\n", a, b);
system("pause");
return 0;
}
运行结果:
缺点分析:因为这个算法过程中包含加法,当初始值给的较大是,可能出现溢出;
心得:这个方法在写的过程中容易将加减顺序记错。
方法二:异或法:
#include<stdio.h>
#include<Windows.h>
int main()
{
int a = 5, b = 7;//创建两个变量,运用二进制异或运算
a = a^b;
b = b^a;
a = a^b;
printf("%d,%d\n", a, b);
system("pause");
return 0;
运行结果
心得:该方法在写的过程中容易将运算顺序搞错;