[挑战]还有比我这个更短更好的swap方法吗
namespace test{ using System; class Program { static void Main(string[] args) { int a, b; a = 100; b = 3; b = a + 0 * (a = b); Console.WriteLine(a + "," + b); } }}//000011: b = a + 0 * (a = b); IL_0005: ldloc.0 IL_0006: ldloc.1 IL_0007: stloc.0 IL_0008: stloc.1
b = a + 0 * (a = b);0000002f mov eax,dword ptr [ebp-8] 00000032 mov dword ptr [ebp-10h],eax 00000035 mov eax,dword ptr [ebp-0Ch] 00000038 mov dword ptr [ebp-8],eax 0000003b mov eax,dword ptr [ebp-10h] 0000003e mov dword ptr [ebp-0Ch],eax
int a, b;a = 100;b = 3;a^=b;b^=a;a^=b;
[解决办法]
不错,但是可读性不太好。
[解决办法]
int newa, newb; for (int i = 0; i < 10000000; i++) { newa = b; newb = a; }
[解决办法]
不错!
[解决办法]