A pointer is a variable that stores the memory address of another variable. Pointers hold addresses, while regular variables hold values. Computer memory is divided into sequentially numbered locations, with each variable assigned a unique address. Pointers allow manipulation of memory at a low level, making C++ suitable for embedded and real-time applications. Declaring a pointer simply requires specifying its type, like int*, and it reserves memory to hold an address. Pointers must be initialized, like int* pointer = 0, to avoid being "wild" pointers pointing to unknown memory. The address operator & returns a variable's address, which can be stored in a pointer.