不使用其他变量,交换两个变量的位置
今天在《深入理解计算机系统》上看到的,突然想到以前似乎看到过这样的题:不使用其他变量,交换两个变量的位置。
方法是使用异或运算 ^ ,有特性 a^a=0, 0^a=a。
1 | void inplace_swap(int *x, int *y){ |
很基础,并且这种交换方式并没有性能上的优势,只是一道考题。
今天在《深入理解计算机系统》上看到的,突然想到以前似乎看到过这样的题:不使用其他变量,交换两个变量的位置。
方法是使用异或运算 ^ ,有特性 a^a=0, 0^a=a。
1 | void inplace_swap(int *x, int *y){ |
很基础,并且这种交换方式并没有性能上的优势,只是一道考题。