Whenever you reference a memory address, you have to decide how to interpret the data you find there, that's the meaning of the pointer-type, and type at all...
(There are languages where you do not define type and the environment will decide for you how to interpret that type - with occasional errors)
You should read here:
Pointers - C++ Tutorials[
^]