Because references are better than pointers for some tasks. Using a pointer when a reference will do is like using a chain saw to trim your fingernails it will do the job, but you'd better be extremely careful. In C, pointers are used for a variety of tasks because there is no other tool available for doing these tasks. Programmers learn to live with the dangers of pointers in C because there is no alternative. It's as if C gives you a chain saw and expects you to use it for building houses, shredding paper, trimming fingernails, and cutting hair. When all that's needed is an alias for an object, a pointer is overkill, but a reference is ideal. Pointers are a powerful and valuable part of any programmer's toolbox. However, they should be used only when necessary. Don't give a chain saw to a user who just wants a manicure. Use references when you can, use pointers when you have to. (See FAQ 11.11.) |