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

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

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

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

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看起来非常好(少用一个变量),实际上非常少用,由于它的适用范围非常窄:仅仅有定义了加减法或异或的数据类型才干这么做,这两个算法仅仅是用于提高阅读代码的能力。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C–C语言中volatile关键字的作用[通俗易懂]

    C–C语言中volatile关键字的作用[通俗易懂]转载:http://blog.csdn.net/tigerjibo/article/details/7427366一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高

    2022年5月8日
    35
  • c语言入门教程–-13数组

    c语言入门教程–-13数组

    2021年3月12日
    179
  • 讨论UML概念和模型UML九种图。

    讨论UML概念和模型UML九种图。

    2021年12月17日
    33
  • pip安装的包pycharm识别不了_手机上的python安装第三方库

    pip安装的包pycharm识别不了_手机上的python安装第三方库问题描述:在cmd控制台pipinstallpytest后并显示安装成功后,并且尝试用pycharm的python中importpytest,显示异常,提示我未安装过pytest解决方法方法一:在PyCharm下载第三方库(即把之前下的库作废,这里重新再下一次……)方法二:坚持用pip的方法安装第三方库方法1:无需命令,通过pycharm操作即可,找到“pytest”点击“install”安装即可(由于我已经安装)方法2:我们…

    2022年8月27日
    2
  • 深入理解TCP、UDP协议及两者的区别

    深入理解TCP、UDP协议及两者的区别一、TCP协议:位于传输层,提供可靠的字节流服务。所谓的字节流服务(ByteStreamService)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。即TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。所以,TCP连接相当于两根管道(一…

    2022年5月2日
    41
  • python读取txt文件(多种方法)「建议收藏」

    python读取txt文件(多种方法)「建议收藏」原始数据:唐诗一百首.txt方法1:f=open(‘唐诗一百首.txt’,encoding=’gbk’)txt=[]forlineinf:txt.append(line.strip())print(txt)line.strip()去除首尾空格encoding编码格式utf-8,gbk方法2f=open(‘唐诗一百首.txt’)line=f.readline().strip()#读取第一行txt=[]txt.append(line)whileli

    2022年5月7日
    112

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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