巧用异或交换整型变量的值 来源:蚂蚁的 C/C++ 标准编程 作者:Antigloss 通常,如果要交换两个变量的值,可以这么做: tmp = a; a = b; b = tmp; 如上所示,这需要定义一个辅助变量 tmp。使用异或可以避免使用额外的辅助变量。例如: #define swap(a, b) (a) ^= (b), (b) ^= (a), (a) ^= (b) #include <stdio.h> int main(void) { int ival1 = 10, ival2 = 20; printf("%d %d\n", ival1, ival2); swap(ival1, ival2); printf("%d %d\n", ival1, ival2); } 不过,使用异或有个局限性,就是只能用于整数类型。

评论