【发布时间】:2018-03-26 13:59:16
【问题描述】:
在 C 语言中,这个语句是做什么的?
*p1 ^= *p2;
p1 和 p2 是指向 char 数组的两个不同地址的 char 指针。我知道^ 运算符是异或。
【问题讨论】:
-
如果您知道
^,那么您就知道该语句的作用。 -
对两者指向的数据进行异或运算,并将结果存储到
p1指向的地址中。 -
^ 是异或运算符。 a ^= b 是 a = a ^ b 的缩写。
-
^=是单个运算符。您可能更熟悉它的模拟,+=。该语句的效果直接来自其中涉及的运算符*和^=的行为,如果需要,您当然可以自行查找。 -
同
*p1 = *p1 ^ *p2。 “p1 的值设置为 p1 的值与 p2 的值异或。”在 char 指针都指向 2 的情况下,它会将 p1 的值更改为 0。(因为 a ^ a = 0)
标签: c compound-assignment