
文章目录
概述
解释
这里给出常见的7种方法,仅供大家参考,部分实现C#不支持。
1、加减减法
private static void Swap1(ref int a, ref int b) { a = a + b; b = a - b; a = a - b; }
2、减减加法
private static void Swap2(ref int a, ref int b) { a = b - a; b = b - a; a = b + a; }
3、加减赋值法
private static void Swap3(ref int a, ref int b) { //C#不支持此方法,C或C++可以 //a = a + b - (a = b); }
4、加减减赋值法
private static void Swap4(ref int a, ref int b) { //C#不支持逗号表达式,C或C++可以 //a = (a = a + b, b = a - b, a - b); }
5、异或法
private static void Swap5(ref int a, ref int b) { a = a ^ b; b = a ^ b; a = a ^ b; }
6、汇编法
__asm { mov eax,a; mov ecx,b; push dword ptr[eax]; push dword ptr[ecx]; pop dword ptr[eax]; pop dword ptr[ecx]; }
7、加乘赋值法
private static void Swap7(ref int a, ref int b) { b = a + 0 * (a = b); }
请注意:方法3、4、6,C#语言不支持。
本文由 .Net中文网 原创发布,欢迎大家踊跃转载。
转载请注明本文地址:https://www.byteflying.com/archives/963。