异或链表异或功能



在查看XOR链表的实现时,我遇到了这段代码几次,但它们似乎都没有正确解释这一行(或者可能我错过了什么)-

struct node* XOR (struct node *a, struct node *b)
{
    return (struct node*) ((unsigned int) (a) ^ (unsigned int) (b));
}

它是如何工作的?(请指出任何以前的答案/评论描述它)谢谢!

除了对指针'a'和'b'所指向的地址执行通常的异或操作

(unsigned int) (a) ^ (unsigned int) (b)

是int到指针的隐式转换(这里是struct node *)使这段代码工作。

(struct node *)(unsigned int someInteger); 

编辑:感谢@aruisdante对第二部分的解释!

相关内容

  • 没有找到相关文章

最新更新