title: Not able to understand the output of this C pointer to arraycode
body: <p>Here is code about the array to pointer.
  The problem is that I don't understand the output.
  According to what I have studied <code>*p</code> means value at address p is containing and <code>*(*p)</code>  value at address at (value at address p containing)
  then why the output is different.</p>
  
  <p>Code: </p>
  
  <pre><code>--------------------------------------------------------------------------- 
   #include&lt;stdio.h&gt;
  
  void main()
  {
  static int a[ ] = { 0, 1, 2, 3, 4 } ;
  int *p[ ] = { a, a + 1, a + 2, a + 3, a + 4 } ;
  printf ( "\n%u %u %d", p, *p, * ( *p ) ) ;
  }
  </code></pre>
  
  <p>and output is</p>
  
  <pre><code>3545106368 6293840 0
  </code></pre>
  
  <p>Please help me to understand this output. Keep it simple and easy for me. </p>