提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、交换的三种写法
1.直接进行交换
代码如下(示例):
直接进行变量赋值
#include <stdio.h>
void swap1(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
int main(int argc, const char *argv[])
{
int a=10;
int b=20;
swap1(&a,&b);
printf("a=%db=%d\n",a,b);
return 0;
}
2.相加进行运算
代码如下(示例):
没有开辟新的空间进行运算,可以减少内存的消耗
#include <stdio.h>
void swap2(int *a ,int *b)
{
*a = *a+*b;
*b = *a-*b;
*a = *a-*b;
}
int main(int argc, const char *argv[])
{
int a=10;
int b=20;
swap2(&a,&b);
printf("a=%db=%d\n",a,b);
return 0;
}
3.异或运算
代码如下(示例):
异或:进行位运算,相同为0,不同为1。
没有开辟新的空间进行运算,可以减少内存的消耗
#include <stdio.h>
void swap3(int *a,int *b)
{
*a = *a ^ *b;
*b = *a ^ *b;
*a = *a ^ *b;
}
int main(int argc, const char *argv[])
{
int a=10;
int b=20;
swap3(&a,&b);
printf("a=%db=%d\n",a,b);
return 0;
}