title: What is the benefit of using double pointer in C/C++
body: <p>I am new to C/ C++.</p>
  
  <p>I was going through some of the coding questions related to trees and came across this double pointer notation. Can we do the same things using single pointer as first argument in the below function as we can do with double pointers.</p>
  
  <pre><code>void operate(struct Node *root, struct Node **head_ref){ //do something}
  </code></pre>