以前看到了一道面试题不能使用变量交换两个整型变量的值,百思不得其解
今天无意对程序中的密码做了些小变动保存,用到了异或操作,发现了异或操作的逆运算也是异或,于是恍然大悟,明白了交换两个整型变量的值其实很简单,现赋代码如下,有兴趣的可以照下面试试:
void swap(int& x, int& y)
{ x ^= y; y ^= x; x ^= y; }
就这么简单,
以前看到了一道面试题不能使用变量交换两个整型变量的值,百思不得其解
今天无意对程序中的密码做了些小变动保存,用到了异或操作,发现了异或操作的逆运算也是异或,于是恍然大悟,明白了交换两个整型变量的值其实很简单,现赋代码如下,有兴趣的可以照下面试试:
void swap(int& x, int& y)
{ x ^= y; y ^= x; x ^= y; }
就这么简单,