What is a pointer?
All the memory your program can access is laid out as a series of memory cells or locations.
Each cell can hold 8 bits (1 byte) worth of data (for example, one ASCII character).
Multiple cells can be grouped to hold data items longer than 8 bits
For example, a short integer is likely to be 32 bits or 4 bytes, so 4 cells are needed to store a short int. To identify specific cells, the computer uses numeric values (addresses). Addresses increase linearly. If some memory cell has the address 2300, the next cell in memory will have the address 2301.
All addresses are positive integers. In most of the computers we are likely to be using, addresses are 8 bytes long.
A pointer is one of these addresses - a reference to one (or a group of) memory cells