title: Pointer to pointer clarification
body: <p>I was following this <a href="http://c-faq.com/~scs/cclass/int/sx8.html" rel="noreferrer">tutorial</a> about how does a <em>pointer to a pointer</em> work. </p>
  
  <p>Let me quote the relevant passage:</p>
  
  <hr>
  
  <blockquote>
  <pre><code>    int i = 5, j = 6, k = 7;
      int *ip1 = &amp;i, *ip2 = &amp;j;
  </code></pre>
    
    <p>Now we can set</p>
  
  <pre><code>    int **ipp = &amp;ip1;
  </code></pre>
    
    <p>and <code>ipp</code> points to <code>ip1</code> which points to <code>i</code>. <code>*ipp</code> is <code>ip1</code>, and <code>**ipp</code> is <code>i</code>, or 5. We can illustrate the situation, with our familiar box-and-arrow notation, like this: </p>
    
    <p><img src="https://i.stack.imgur.com/a8MUU.gif" alt="enter image description here"></p>
    
    <p>If then we say</p>
  
  <pre><code>    *ipp = ip2;
  </code></pre>
    
    <p>we've changed the pointer pointed to by <code>ipp</code> (that is, <code>ip1</code>) to contain a copy of <code>ip2</code>, so that it (<code>ip1</code>) now points at <code>j</code>: </p>
    
    <p><img src="https://i.stack.imgur.com/bpfxT.gif" alt="enter image description here"></p>
  </blockquote>
  
  <hr>
  
  <p>My question is: Why in the second picture, is <code>ipp</code> still pointing to <code>ip1</code> but not <code>ip2</code>?</p>