2014-05-07 29 views

回答

0
void swap_int(unsigned int *a, unsigned int *b) { 
    *a^=*b; // After that: a==(orig_a^orig_b) 
    *b^=*a; // After that: b==(orig_b^a)==(orig_b^orig_a^orig_b)==orig_a, thus a was moved to b 
    *a^=*b; // After that: a==(orig_a^orig_b)^b==(orig_a^orig_b)^orig_a==orig_b, thus we are happy and ready 
} 
+0

这是什么我不明白! – James

+0

@ user3595113独家或。但我可以给你另一个答案,也许它会更好地理解。 – peterh

+5

或者,你应该只提供一些解释以及你的代码? –

0
void swap_int(unsigned int *a, unsigned int *b) { 
    *a-=*b; 
    *b+=*a; 
    *a=*b-*a; 
} 
您正在使用什么编程语言
相关问题