title: Pointers, the * operator
body: <p>How does the * operator work in this example, and why does it work?</p>
  
  <pre><code>int *p, x, y;
  x = 5;
  p = &amp;x; // stores the address of x in p;
  y = *p; // the * operator gets the value stored at the address stored in p. Now y is 5;
  *p = 0; // why does this work? Shouldn't it be as writing 5 = 0? since the * operator gets the value stored at that address?
  </code></pre>
  
  <p>Why does *p = 0 assigns 0 to x? I've commented the code to better understand what I'm missing here.</p>
  
  <p>Thank you!</p>