title: what *p1 ^= *p2; does in c
body: <p>In C what does this statement do?</p>
  
  <pre><code>*p1 ^= *p2;
  </code></pre>
  
  <p><code>p1</code> and <code>p2</code> are char pointers pointing to two different address of a char array. I know about <code>^</code> operator is XOR.</p>