A pointer is a variable that contains the memory address of another variable, called the pointee.
Pointers are declared as any other variable, except that an asterisk (*) is placed between the data type and the pointer’s name. The data type used determines what type of memory it will point to.
int* p; // pointer to an integerint *q; // alternative syntax
A pointer can point to a variable of the same type by prefixing that variable with an ampersand, in order to retrieve its address and assign it to the pointer. The ampersand is known as the address-of operator (&).
int i = 10;p = &i; // address of i assigned ...