Xor c代码 - 需要解释

时间:2012-05-04 06:29:32

标签: c++ xor

有人可以解释一下XOR(^)在下面的代码中做了什么,以及该函数是如何指针的?

char *strReverse(char *str)
{
      char *pb, *pe;

      for (pb = str, pe = str + strlen(str) - 1; pe > pb; ++pb, --pe)
      {
            *pb ^= *pe;
            *pe ^= *pb;
            *pb ^= *pe;
      }
      return str;
}

2 个答案:

答案 0 :(得分:3)

该函数不是指针,而是返回char*

该函数反转字符串。

这种XOR技术用于交换两个元素而不需要任何额外的内存。如您所见,循环遍历字符串的开始和结束,并交换两个char

答案 1 :(得分:1)

使用像这样的xor是一种不使用临时变量在内存中交换两个值的不同方法。我推荐bit hacks用于其他的黑客攻击