交换两个变量的值 五种方法 第三者引入 函数 指针 引用 异或 加减

2023-07-28 19:39:57 浏览数 (2)

方法一:第三者

一般我喜欢用这种第三者引入法。

代码

代码语言:javascript复制
#include<stdio.h>
int main()
{
	int a=666,b=999,mis;
	mis=a;
	a=b;
	b=mis; 
}

方法二:指针

但如果代码中经常需要交换两个变量的值,如果还是用这种方法,那么一次交换就要三行代码,这也不是问题,问题是修改很不方便,我就自己写了个函数,一行搞定交换,修改也方便。

函数要实现改变变量的值就要动用指针。

代码

代码语言:javascript复制
#include<stdio.h>
void exchange(int *a,int *b)
{
	int mis;
	mis=*a;
	*a=*b;
	*b=mis;
}
int main()
{
	int a=666,b=999;
	exchange(&a,&b);
}

后面学多了,才知道,也不一定要用指针,引用也可以在函数中改变变量的值。 

方法三:异或

1.a^a=0;

2.a^0=a;

3.a^b=b^a;

代码

代码语言:javascript复制
#include <stdio.h>
int main()
{
	int a=1234,b=5678;
	a=a^b;
	b=a^b;
	a=a^b;
}

方法四:加减

a=a b;

b=a-b;

a=a-b;

代码

代码语言:javascript复制
#include <stdio.h>
int main()
{
	int a=1234,b=5678;
	a=a b;
	b=a-b;
	a=a-b;
}

方法五:引用

这是后来学到的引用,代码和指针看起来差不多。

代码语言:javascript复制
#include<stdio.h>
void swap(int &a,int& b)
{
	int temp;
	temp=a;
	a=b;
	b=temp;
}
int main()
{
	int a=1314,b=520;
	swap(a,b);
}

题外话

在C 中,swap是标准库函数,可以直接用:

代码语言:javascript复制
swap(a,b);

在Python中可以这样:

代码语言:javascript复制
a = 1234
b = 5678
a,b=b,a

0 人点赞