1. pointer & const
Key point: The * is the seperator. The right side is declarator, *p is a pointer, *const p is a const pointer. The left side is the specifiers, is type. const T and T const are same.
(1) = (2), p pointer point to const T, p can be changed. T cannot be changed.
(4) = (5), const p pointer point to const T, p and T cannot be changed.
(3), const p pointer point to T, T can be changed. p cannot be changed.
The storage specifiers like static or exter are for p. example, static const T *p.
原文:https://www.cnblogs.com/zjbfvfv/p/11818887.html