想要交换两个数,最简单的方式就是创建一个临时变量实现数的交换。
可咱就是不走寻常路,下面介绍不创建临时变量实现数的交换:
定义两个整形变量:
int a = 4;
int b = 5;
法一:
#include<stdio.h>
int main()
{
int a = 4;
int b = 5;
printf("交换前:a=%d,b=%d\n",a,b);
a = a + b;
b = a - b; //a + b - b = a
a = a - b; //a + b - a = b
printf("交换后:a=%d,b=%d\n", a, b);
return 0;
}
此方法有缺陷:会有栈溢出的风险。
法二:
此方法要用到位运算符(这里只介绍"^"(按位异或))