一、使用中间变量(需要另外开辟内存)
方法一:利用中间变量,不使指针
方法二:使用指针
二、不使用中间变量(不需要另外开辟内存)
方法三:加减法
方法四:乘除法
方法五:异或法
三、代码实现
#include<stdio.h>
void change(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void main()
{
int a = 10, b = 100;
//方法一:使用中间变量
int temp;
temp = a; //temp=10,a=10,b=100
a = b; //temp=10,a=100,b=100
b = temp; //temp=10,a=100,b=10
printf("a = %d, b = %d\n", a, b);
//方法二:使用指针,封装函数
a = 10;
b = 100;
change(&a,&b);
printf("a = %d, b = %d\n", a, b);
//方法三:使用加减法
a = 10;
b = 100;
a = a + b; //a=110,b=100
b = a - b; //a=110,b=10
a = a - b; //a=100,b=10
printf("a = %d, b = %d\n", a, b);
//方法四:使用乘除法
a = 10;
b = 100;
a = a * b; //a=1000,b=100
b = a / b; //a=1000,b=10
a = a / b; //a=100,b=10
printf("a = %d, b = %d\n", a, b);
//方法五:使用异或运算
a = 10; //二进制:00001010
b = 100; //二进制:01100100
a = a ^ b; //a=01101110(110),b=01100100(100)
b = a ^ b; //a=01101110(110),b=00001010(10)
a = a ^ b; //a=01100100(100),b=00001010(10)
printf("a = %d, b = %d", a, b);
getchar();
}
四、运行结果