Pointers in C++ allow programs to store and manipulate memory addresses. Pointers contain the address of another variable. They are used to pass variables by reference into functions and access array elements. A pointer is initialized by assigning the address of a variable to it using the & operator. The * operator is used for indirection to access the value at the address stored in the pointer. Pointers can also point to other pointers. Arrays of pointers store multiple memory addresses. The name of an array acts as a constant pointer containing the base address of the array.