The answer is to dereference the pointer. Dereferencing a pointer means using the memory address to access the data at the address it points to. The dereference operator is the asterisk (*). For example, if p is a pointer to an int, then *p is the int that p points to. If p holds the address of an int variable, then *p gives us access to the memory at that address. A good way to pronounce *p is βthe thing p points atβ.
This is another time where C++ reuses the same symbol to mean different things. * can be used to specify that a data type is a pointer. It can also be used to dereference a pointer. Or it can mean multiplication.
When a data type is to its left, as in int* or double*, it modifies that type to say βpointer to a ....β. (There may or may not be a variable name to the right.)
In that example, we use *p to read the βint that p points toβ. We can also use it to modify that value. If I have a pointer p and I want to modify the value that it is pointing at, I can do something like *p = 20;. We could pronounce *p = 12; as βthe thing that p points at gets assigned 20β. Here is a sample of using a pointer to modify a value it points at: