# re: 交换a,b值的疑问 回复 更多评论
2007-02-06 01:18 by
#include <iostream>
using namespace std;
void MySwap1(int& a,int& b)
{
printf("Swap1 %p %p\n",&a,&b);
_asm {
mov eax,a
mov ebx,b
xor ebx,eax
xor eax,ebx
xor ebx,eax
mov a,eax
mov b,ebx
}
printf("Swap2 %p %p\n",&a,&b);
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("main1 %p %p\n",&a,&b);
MySwap1(a,b);
printf("main2 %p %p\n",&a,&b);
printf( "a=%d,b=%d\n" ,a,b);
}
发觉问题处在引用上,只是交换了引用的地址