title: the purpose of function parameters with two indirection operators (C++)
body: <p>What is the purpose of a function parameter that has two indirection operators? <br><br>
  Since a call by reference is changing the value of the original variable I thought that a function parameter with two indirection operators might change the address of the original value.<br>
  But as my attemp below shows, it does not:</p>
  
  <pre><code>
  void addrchanger(int**);
  
  int main()
  {
      int value1 = 4;
      int* value1ptr = &amp;value1;
      std::cout&lt;&lt;&amp;value1&lt;&lt;std::endl;
  
      addrchanger(&amp;value1ptr);
      std::cout&lt;&lt;&amp;value1&lt;&lt;std::endl;
      //the address of value1 doesn't change.
  }
  
  void addrchanger(int** foo)
  {
      //this is an attempt to change the address of value1 to the next slot
      ++**foo;
  }
  </code></pre>