Pointers are very useful for dynamic memory allocation. I know, I know, I'm only the millionth person to say this on this thread.

But here's in example: You're getting customer data, but you don't know how many customers the user is going to input. This presents a serious problem if there weren't pointers. You could, say, just go "Customer array[1000];" but let's say the user only enters 10 records. You end up with a lot of empty memory that none of the other programs can use. Pointers solve all these problems with dynamic memory allocation and linked lists.

Hope I make sense