XOR链接列表XOR功能

时间:2014-07-23 18:54:43

标签: c linked-list xor

在查看XOR链接列表的实现时,我多次遇到这段代码,但是他们似乎都没有正确地解释这一行(或者我错过了一些东西) -

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

它是如何运作的?任何人都可以解释所涉及的演员阵容吗?(请指出任何以前的答案/评论已经描述过)谢谢!

1 个答案:

答案 0 :(得分:0)

除了对'a'和'b'指针指向的地址执行的通常XOR

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

隐式转换为指针(此处为 struct node * )使得此代码有效。

(struct node *)(unsigned int someInteger); 

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