交换两个数的方法
示例代码如下:
1 #include <iostream> 2 using namespace std; 3 4 /* 5 * 指针法(中间变量1) 6 */ 7 void swap1(int *pa, int *pb) 8 { 9 int temp = *pa; 10 *pa = *pb; 11 *pb = temp; 12 } 13 14 /* 15 * 引用法(中间变量2) 16 */ 17 void swap2(int &ra, int &rb) 18 { 19 int temp = ra; 20 ra = rb; 21 rb = temp; 22 } 23 24 /* 25 * 相互加减法 26 */ 27 void swap3(int &a, int &b) 28 { 29 a = a + b; // 可能会溢出 30 b = a - b; 31 a = a - b; 32 } 33 34 /* 35 * 异或法 36 */ 37 void swap4(int &a, int &b) 38 { 39 a ^= b; 40 b ^= a; 41 a ^= b; 42 } 43 44 void print(int &a, int &b) 45 { 46 cout <<"a = "<< a << " " <<"b = "<< b << endl; 47 } 48 49 void main(int argc, char* argv[]) 50 { 51 int a =100, b = 200; 52 print(a, b); 53 // 指针法(中间变量1) 54 swap1(&a, &b); 55 print(a, b); 56 // 引用法(中间变量2) 57 swap2(a, b); 58 print(a, b); 59 // 相互加减法 60 swap3(a, b); 61 print(a, b); 62 // 异或法 63 swap4(a, b); 64 print(a, b); 65 66 system("pause"); 67 } 68 69 // run out: 70 /* 71 a = 100 b = 200 72 a = 200 b = 100 73 a = 100 b = 200 74 a = 200 b = 100 75 a = 100 b = 200 76 请按任意键继续. . . 77 */
以上四种交换方法,各有利弊。
Good Good Study, Day Day Up.
顺序 选择 循环 坚持
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异