3

有人可以解释一下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;
}
4

2 回答 2

3

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

该函数反转一个字符串。

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

于 2012-05-04T06:30:31.043 回答
1

像这样使用 xor 是在不使用临时变量的情况下交换内存中两个值的不同方式。我推荐其他位黑客的位黑客

于 2012-05-04T06:32:37.767 回答