这是我在自学C语言时学到的三种方法,这三种是比较常见的也是比较好理解的。
1,首先就是我们最长用的,创建第三变量的方法(推荐使用这种方法,执行效率高)
int main(void)
{
int i = 0;
int j = 0;
printf("请输入两数:");
scanf("%d%d", &i, &j);
int tmp = i;//创建第三变量来备份i的值
i = j;//将j的值放到i里面
j = tmp;//将备份的值放到j里面
printf("%d %d", i, j);
return 0;
}
2.然后就是加减法
int main(void)
{
int a = 45;
int b = 26;
printf("a = %d b = %d\n", a, b);
a = a + b;//此时a的值就是a、b值的和
b = a - b;//a-b的值就是原来a的值
a = a - b;//同理这里a的值就是原来b的值
printf("a = %d b = %d", a, b);
return 0;
}//这样写存在BUG,因为a、b的值可能不会超过int类型的最大表示范围,但是他们相加后可能就回超出,这个时候就写出了BUG
3.最后就是用异或(按二进制位异或,相同为0,不同为1)的办法
int main(void)
{
int a = 3;//0011
int b = 9;//1001
printf("a = %d b = %d\n", a, b);
a = a ^ b;//1010
b = a ^ b;//0011
a = a ^ b;//1001
printf("a = %d b = %d\n", a, b);
return 0;
}//这样写就不会出现溢出的问题,因为异或的时候二进制不会产生进位,相同为0,不同为1嘛。