For a given type T:
What is the difference between const T * and T * const?
Also, are there other places that const can go? For instance, is T const * a thing? Can you have more than one const in an expression, such as const T * const?
For a given type T:
What is the difference between const T * and T * const?
Also, are there other places that const can go? For instance, is T const * a thing? Can you have more than one const in an expression, such as const T * const?
const T *x means x points to an object of type T, but that object should not be modified.
On the other hand, T *const x means the pointer itself cannot be modified (but the object it points to can).
const T *const x is just a combination of the two; both the pointer and the object it points to cannot be modified.