title: Does the second const matter in void f(char const * const p)?
body: <p>A function declared</p>
  
  <pre><code>void f(const char * const p) { ... }
  </code></pre>
  
  <p>means that it takes a constant pointer to a constant character. But, with the variable <code>p</code> scoped only within the function itself and its usage hidden from the callee, does it matter if the second <code>const</code> is there?</p>
  
  <p>In other words, wouldn't the following be semantically identical to the first from the perspective of the callee?</p>
  
  <pre><code>void f(const char *p) { ... }
  </code></pre>