C语言不通过第三个变量交换a、b两数数值的技巧

 

int a = 8, b = 9;
a = a^b;
b = b^a;
a = a^b;

// 现在a=9,b=8了

// 证明:1. 执行第一行,a的值为 a^b 了

// 2. 再执行第2行,b = b^a = b^(a^b) = a^b^b = a^0 = a,现在b的值为a了

// 3. 接着执……

posted @ 2010-03-04 13:04  mikejason  阅读(446)  评论(0)    收藏  举报