title: Pointer to pointer value not printing
body: <p>I am new to C programming and recently covered pointers. I wrote some code which made me confused. I tried to make up a possible explanation but it didnt seem correct.</p>
  <p>Here is my code:</p>
  <pre><code>#include &lt;stdio.h&gt;
  
  int main() {
      int x = 5;
      int* p = &amp;x;
      int*** q = &amp;p; 
      printf(&quot;%u\n&quot;, *p);
      printf(&quot;%u\n&quot;, *q);
      printf(&quot;%u&quot;, ***q);
      return 0;
  }
  </code></pre>
  <p>What I have done is that I have declared a pointer <code>p</code> to <code>x</code> and then a pointer <code>q</code> to pointer <code>p</code> itself. The video that I was watching, there was firstly a <code>**q</code> pointing to <code>p</code> and when I tried to dereference it, I got the value which I was able to understand why and how it was doing that.</p>
  <p>Now, I thought to change <code>**q</code> to <code>***q</code> and when I tried to dereference it, it printed:</p>
  <pre><code>5
  // the address
  // and then a new line
  </code></pre>
  <p>Can you tell me why this happened? And what is meant by adding more stars to a pointer?</p>