//不允许创建临时变量,交换两个变量的内容
#include<stdio.h>
#include<stdlib.h>
void my_swap(int *a, int *b)
{
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
int main()
{
int a = 10;
int b = 20;
my_swap(&a, &b);
printf("%d %d", a, b);
system("pause");
return 0;
}
方法二:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 10;
int b = 20;
a = a^b; //ex: 2 3-> 10 和11 a=a^b->a=01
b = a^b; //b=a^b ->b=10 ->2
a = a^b; //a=a^b ->a=11 ->3
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}