title: What is the difference between passing a pointer to function and passing reference of pointer to function?
body: <p>So, I have a structure</p>
  
  <pre><code>struct node
  {
      node * l;
      node * r;
  };
  </code></pre>
  
  <p>Then, there is</p>
  
  <pre><code>typedef node* tnode;
  </code></pre>
  
  <p>What I <strong>don't</strong> understand is this function:</p>
  
  <pre><code>void tsplit(tnode t, tnode &amp;l, tnode &amp;r, int x)
  </code></pre>
  
  <p>As I get it, we pass <code>t</code> to <code>tsplit()</code> as a pointer to a structure, than we pass two references of pointers to structures of the same type. Why can't we just pass pointers instead of their references? Does it makes any sense?</p>