"Why should data point to other data?"
Pointers are what allow you to do things like linked lists, binary search trees, and iterators just to name a few. They are very important to many many aspects of programming. writing something in memory and then just pointing to it is so much more efficient and easier then moving that chunk of memory around every time. If you are having a lot of trouble understanding them read a good c book about them.