There are four ways to pass a pointer to a functiona nonconstant
pointer to nonconstant data, a nonconstant pointer to constant data, a
constant pointer to nonconstant data and a constant pointer to
constant data.
Taken from Deitel - C++ How to Program, Fifth Edition