交换两个变量的值

  • 前言
  • 1、创建临时变量——一般方法
  • 2、创建临时变量——指针
  • 3、不创建临时变量——加减法
  • 4、不创建临时变量——异或
  • 总结

前言

本文练习交换两个变量的值,大体上分为两类方法,创建临时变量和不创建临时变量,主要包括:

  • 创建临时变量——一般方法
  • 创建临时变量——指针
  • 不创建临时变量——加减法
  • 不创建临时变量——异或

1、创建临时变量——一般方法

int main()
{int a = 10;int b = 20;int temp = 0;printf("交换前:a = %d b = %d\n", a, b);//交换前的temp = a;  a = b;b = temp;printf("交换后:a = %d b = %d\n", a, b);//交换后的return 0;
}

结果见下图:

2、创建临时变量——指针

指针和一般方法都需要创建变量,区别在于一般方法不能够写成函数的形式,这是形参和实参的应用,已经在【C语言基础3——函数(1)3、函数的参数】中学过:

//实现成函数,但是不能完成任务
int exchange1(int x, int y)
{//当实参传给形参时候,形参是实参的一份临时拷贝,//对形参的修改不会影响实参int temp = x;x = y;y = temp;
}
//正确的版本
int exchange2(int* pa, int* pb)//定义指针,接收地址
{int temp = *pa;*pa = *pb;*pb = temp;
}
int main()
{int a = 3;int b = 5;exchange1(a, b);//传参是值printf("exchange1::a = %d b = %d\n", a, b);//交换前exchange2(&a, &b);//传参是地址printf("exchange2::a = %d b = %d\n", a, b);//交换后的//传入地址,自定义的形参和实参联系更加紧密,能改变地址存储的数值//此时,形参的地址与实参的地址是一样的return 0;
}

结果见下图:

3、不创建临时变量——加减法

int main()
{int a = 10;int b = 20;a = a + b;//把a+b赋值给ab = a - b;//把a+b-b,就是a 赋值给ba = a - b;//把a+b-a 赋值给aprintf("a=%d\nb=%d\n", a, b);return 0;
}

结果见下图:

4、不创建临时变量——异或

异或的用法,在【初阶数据结构与算法 2】时间复杂度与空间复杂度(2)——转轮数组、左旋字符、消失的数字 7.3 方法3——异或 中详细介绍过:

int main()
{int a = 10;int b = 20;printf("交换前:a = %d b = %d\n", a, b);//交换前的a = a ^ b;//把a^b赋值给ab = a ^ b;//把a^b^b,就是剩下a 赋值给ba = a ^ b;//把a^b^a, 赋值给aprintf("交换后:a = %d b = %d\n", a, b);//交换后的return 0;
}

结果见下图:


总结

交换两个变量的值,分为两类方法,创建临时变量和不创建临时变量:

  • 创建临时变量的两种方法是常用的
  • 其中指针的方法应该熟练掌握
  • 不创建临时变量的两种方法是不易想到的
  • 要注意加减法和异或的特殊用法

【C语言练习——交换两个变量的值】相关推荐

  1. 【C语言】交换两个变量的值 的n种方法

    文章目录 方法一 借助第三方 方法二 变量自加减 方法三 巧用异或位运算 方法一 借助第三方 借助第三方临时储存一个变量的值,是我们最常用的方法.这个方法不仅可以交换两个整数,任意类型的两个变量交换, ...

  2. python交换两个变量的值

    大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的交换 (a,b) = (b,a) ...

  3. python交换两个变量的值_python交换两个变量的值方法

    python交换两个变量的值方法 大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的 ...

  4. python怎么交换两个变量的值_python交换两个变量的值方法

    大部分语言,例如c语言,交换两个变量的值需要使用中间变量. 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量的交换 (a,b) = (b,a) ...

  5. C语言中的关键字,变量的定义,变量的命名规则,交换两个变量的值,驼峰命名法【 C语言变量名命名法则】

    C语言结构 C语言中的关键字 变量 变量的定义 变量的命名规则 交换两个变量的值 驼峰命名法 C语言结构 上图中我们可以看到最外层是程序,内部是所有的构成,我们从最里面开始说明. 当我们用计算机语言来 ...

  6. Python中有几种办法交换两个变量的值?

    交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的.今天这个面试是问大家有几种办法来实现交换两个变量的值 .在没开始看具体答案前,你可以先想想看 . 下面分别来说说这几种方法: 1 ...

  7. 用html5交换两个变量的值,Python判断两个对象相等的原理 python交换两个变量的值为什么不用中间变量...

    python语言设计一个类代表花,其中含2个对象属性,2class flower: def __init__ (self, name, shape): self.name = name self.sh ...

  8. python交换两个值原理_python如何交换两个变量的值

    python如何交换两个变量的值? 工具/原料 python 方法/步骤 1 很多编程语言中,两个变量进行值交换,都必须借助第三个变量来实现,如下图所示中的dos脚本,交换变量x,y的值,需要利用到第 ...

  9. 不用临时变量,交换两个变量的值

    不用临时变量,交换两个变量的值 a=a^b;     b=a^b;     a=a^b; 或者   a=a+b;     b=a-b;     a=a-b;

最新文章

  1. 400万奖金池,倪光南、邓中翰等顶级学者指导,大手笔芯片比赛邀你参与
  2. LeetCode Integer to English Words(整数转化为英文字母)
  3. 计算机考研编程题占,纪念***去的2018计算机考研编程题
  4. 怎么实现Web系统URL传输(表单提交)参数加密-zhuan
  5. 拼多多提交赴美上市招股书 陆奇担任独立董事兼薪酬委员会主席
  6. ECCV 2012 CSK:《Exploiting the circulantstructure of tracking-by-detection with kernels》论文笔记
  7. 前端学习(2731):重读vue电商网站41之自定义格式化时间的全局过滤器
  8. DPad down是哪个键_投影仪前3甲PK:双十一坚果J7S和当贝D3X投影仪选择哪个
  9. win10系统托盘图标不见了_win10托盘图标不显示怎么回事_win10任务栏托盘图标显示不完全如何修复...
  10. HCNA-Storage (H13-611)题库 v4.0
  11. traceroute不通的解决
  12. 最新游戏陪玩源码V2.0升级版/商业版语音聊天系统源码
  13. egret 发布微端项目
  14. 【信号类型识别】基于高阶累积量和GRNN神经网络的WIFI与3G/4G信号的识别
  15. 在线体验 Windows 11「GitHub 热点速览 v.21.30」
  16. WIN10bios重装系统的一些小问题
  17. 深度技术 GHOSTXPSP3 快速装机专业版 V2011.04
  18. 为什么我们迫切需要持续集成(Continuous Integration)
  19. 我的web安全工程师学习之路——规划篇
  20. 2022-2027年中国汽车商业综合体行业市场调研及未来发展趋势预测报告

热门文章

  1. linux sd卡中文件多时读写,数据存储与访问之——文件存储读写
  2. blr不是已知的css属性名,css笔记
  3. 过桥问题c语言程序,多人过桥问题【c语言递归实现】【源代码】
  4. AntdPro 入门分享beta
  5. sipp模拟freepbx分机测试(SIP协议调试)
  6. CCCC天梯赛 L3-015. 球队“食物链”
  7. cli3设置端口号 vue_vuecli3x4x修改项目启动端口
  8. N270 CPU安装X86群晖反复出现可转移解决方案
  9. 普通电脑安装华为电脑管家操作流程
  10. (三)为Ubuntu系统添加新的普通用户