Computers can only store numbers. Everything on the screen – windows, applications, video games, etc. is really a whole bunch of numbers stored and manipulated. A string is nothing but a list of characters which are all numeric values. A more complex object like a struct, an enum, or any custom object is still just a longer, more complex and multilayered set of numbers. A pointer simply tells the processor where in memory to look for the sequence of numbers.
As video game objects become larger and more complex, they take up more memory. Pointers allow us to reference the same object (i.e. the same locations in memory) without creating a bunch of duplicate copies of an object that would take up more space in memory.
It seems like a lot of game design is about finding ways to make the most economical use of resources since many of the games designed with an engine like Unreal will operate at the limits of many systems’ performance. Every bit helps (pun sort of intended).