C/C++ is quite liberal with the placement of the "const" qualifier in a declarator. IMHO it is a shame that the ambiguous form "const T *" be so prevalent. I tend to consistently place "const" after the type it qualifies, like * and &, which eliminates the ambiguous forms. All I have to do is read the declaration from right to left:
T const: constant T
T const *: pointer to constant T
T * const: constant pointer to T
T const * const: constant pointer to constant T
If you ever are in doubt about a declaration, check out the excellent cdecl.org.
Bookmarks