A pointer contains the address in memory of the object or primitive type that it is pointing to. Pointers enhance performance by allowing someone full control of memory management and the advantage of not having to copy or move large chunks of data, you can simply ‘point’ to it. However, this power comes with great responsibility. Programs crash and readability can suffer if pointers are misused.