 <p>From the top of my mind:</p> <pre><code>void * const var; // The pointer is constant and var can change const void * var; // The pointer can change but not var </code></pre> <p>so I would think that your syntax</p> <pre><code>const void * const *ptr; </code></pre> <p>means that ptr is a pointer to a pointer. So ptr would point to an address and that address cannot change (the first const). Also the address that ptr is located cannot change (the second const). But I am not totally sure of this.</p>