当前位置: 首页 > news >正文

将两个变量a,b的值进行交换,不使用任何中间变量

在C++中,不使用中间变量交换两个数有多种实现方式,以下是常见的三种方法及代码示例:

1. 加减法交换(适用于整数)

利用加减法的可逆性实现交换,注意可能存在溢出风险。

cpp

void swapByAddSub(int& a, int& b) {

    a = a + b; // a保存a+b的和

    b = a - b; // b = (a+b) - b = a(原始a的值)

    a = a - b; // a = (a+b) - a(当前b的值)= 原始b的值

}

2. 异或运算交换(适用于整数)

利用异或运算的特性( a ^ a = 0 , a ^ 0 = a ),无溢出风险。

cpp

void swapByXOR(int& a, int& b) {

    a = a ^ b; // a ^ b的结果存入a

    b = a ^ b; // b = (a ^ b) ^ b 

相关文章:

  • 【持续更新】linux网络编程试题
  • leetcode240-搜索二维矩阵
  • ps去掉画板
  • Appium 安装指南
  • word的目录和正文之间存在一张空白纸,目录后面的分节符为什么调不上去?
  • MVVM 模式,以及 Angular、React、Vue 和 jQuery 的区别与关系
  • 【无标题】装箱问题的拓扑动力学解法:几何凝聚与量子坍缩模型
  • LeetCode - 394. 字符串解码
  • Java多线程实现之Callable接口深度解析
  • 蓝桥杯 2024 15届国赛 A组 儿童节快乐
  • 清新文艺手绘学习教育培训竞标汇报PPT模版分享
  • error: Sandbox: rsync(17136) deny(1) file-write-create
  • 【论文解读】ReSearch:让LLM自主学习搜索
  • C++ 手写实现 unordered_map 和 unordered_set:深入解析与源码实战
  • C# 中常用的 字符串截取方法
  • ASP4644电源芯片FB引脚:从原理到实战
  • 电动汽车VCU扭矩控制模式分类方法
  • 软考 系统架构设计师系列知识点之杂项集萃(86)
  • MODERNTCN:一种面向通用时间序列分析的现代纯卷积结构
  • Web应用安全漏洞扫描:原理、常用方法及潜在风险解析?
  • 新网站应该怎么做seo/百度app安装下载免费
  • 找柳市做网站/google chrome
  • 手机如何做车载mp3下载网站/seo技术优化技巧
  • 赚钱黑渠道/网站优化招商
  • 福田做商城网站建设哪家效益快/汕头百度seo公司
  • 做网站很赚钱吗/房地产市场现状分析