在C/C++中,'^='是什么意思?

18

我有以下这一行代码:

contents[pos++] ^= key[shift++];
< p >运算符 ^= 是什么意思?< /p >
4个回答

32

它是异或赋值运算符。基本上:

x ^= y;

就是相当于:

x = x ^ y;

4
当然,这是建立在没有对 ^= 运算符进行重载的假设下,谁知道会发生什么。 :-) - corsiKa
另外,您应该指出它不仅是C[++]语言的一部分,而且在许多其他语言中也存在。 - RobertPitt

13

这意味着对 contents[pos++] 使用 key[shift++] 进行一次异或操作,并将 contents[pos++] 设置为结果。

示例:

contents[pos++]     00010101
key[shift++]        10010001
                    --------
                    10000100

2

0

3
具体而言,它将异或的结果分配回左侧参数。 - chrisaycock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接