您的位置:首页 > 编程语言 > C语言/C++

用C语言实现给定两个整形变量的值,将两个值的内容进行交换。(4种方法)

2017-07-29 16:53 746 查看
1.不创建临时变量(效率低)

(1)加减

test.c

#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a + b;
b = a - b;
a = a - b;
printf("%d %d", a, b);
system("pause");
return 0;
}

(2)异或(同为0,异为1),此处对num1和num2的二进制序列进行异或。

test.c

#include<stdio.h>
int main()
{
int num1 = 10;//01010
int num2 = 20;//10100
num1 = num1^num2;//01010^10100=11110
num2 = num1^num2;//11110^10100=01010//10
num1 = num1^num2;//11110^01010=10100//20
printf("%d %d", num1, num2);
system("pause");
return 0;
}

2.创建临时变量

(1)创建临时变量temp

test.c

#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
int temp;
temp = a;
a = b;
b = temp;
printf("%d %d", a, b);
system("pause");
return 0;
}
(2)用Swap函数
test.c

实参是形参的一份临时拷贝。

指针变量是存放地址的,如果想找到原来那个空间,加“ * ”,解引用。

#include<stdio.h>
void Swap(int *px,int*py)//px,py存放n1,n2的地址,*解引用找到你n1,n2里面的内容,进行远程操作
{
int temp = *px;
*px = *py;
*py = temp;
}
int main()
{
int n1 = 10;//n1,n2没有直接用,而是交给px,py进行维护,*px,*py才真正用
int n2 = 20;
Swap(&n1, &n2);
printf("%d %d\n", n1, n2);
system("pause");
return 0;
}运行界面

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐