title: C pointer always contains its own memory address?
body: <p>Why does the pointer p always point to its own memory address as an integer in the following example. I can't see where it is initialized and would guess that it would be a garbage value. Can someone show me why it is not a garbage value. By the way I am compiling this in gcc with -std set to c99.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main() {
  
      int *p; int a = 4;
      p = &amp;a;
      *p++;
      printf("%d %u\n", *p, p);
  }
  </code></pre>