One of the key features of the C++ language is the concept of a pointer. As we demonstrate in this chapter, pointers are extremely useful for allocating memory for arrays whose sizes are not known when the code is compiled. We will see in the next chapter that they also have use when writing functions that allow us to repeat the same operation on different variables. Before we may use these features we first need to understand what a pointer is. This chapter therefore begins by introducing pointers through explaining how they relate to the storage of variables in the computer’s memory. We then explain how pointers may be used to dynamically allocate memory for arrays whose sizes are unknown at compile time, before briefly discussing some features of pointers that have been introduced in recent C++ standards.