交换变量的三种方法及简单分析

交换变量的三种方法及简单分析

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

交换两个变量的思路主要有两种:借助或不借助暂时变量。详细操作时又有下面三种简单算法:

1、借助暂时变量的算法

#include <stdio.h>

int main(void)
{
	int a, b, t;
	scanf("%d%d", &a, &b);
	t = a;
	a = b;
	b = t;
	printf("a = %d, b = %d\n", a, b);
	return 0;
}

2、不借助暂时变量的算法1(通过加减运算

#include <stdio.h>

int main(void)
{
	int a, b;
	scanf("%d%d", &a, &b);
	a = a + b;
	b = a - b;
	a = a - b;
	printf("a = %d, b = %d\n", a, b);
	return 0;
}

3、不借助暂时变量的算法2(通过异或运算

#include <stdio.h>

int main(void)
{
	int a, b;
	scanf("%d%d", &a, &b);
	a = a ^ b;
	b = b ^ a;
	a = a ^ b;
	printf("a = %d, b = %d\n", a, b);
	return 0;
}

总结:平时使用时,借助暂时变量的算法已经足够好了。不借助暂时变量的算法1和2看起来非常好(少用一个变量),实际上非常少用,由于它的适用范围非常窄:仅仅有定义了加减法或异或的数据类型才干这么做,这两个算法仅仅是用于提高阅读代码的能力。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118205.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号