Sun Oct 14 09:25:39 EDT 2012
const * const
0. const * const: the first "const" refers to the object, the second
to the poiter variable.
1. You'd want to declare "const *a" in the function PROTOTYPE to show
the caller that the contents of an object passed by reference is
2. In general, you want variables in a function that are not to be
changed to be declared "const".
3. You'd want to also use "const * const a" in a function DEFINITION
to make sure the implementation doesn't modify the value of the
pointer itself. However, this doesn't need to show up in the
prototype! (Since pointers are passed by value it is irrelevant to
the caller.) The prototype can just be "const *a".
( #3 is the new insight )