I have used pointers for years and I can with certainty say that nothing vital is lost by going to references. I have only once been in a situation here pointers where essential. I was writing a multitasking kernel for a Digital Alpha system and found it useful to convert pointers to machine generated content on the stack to certain structs that made reading easy of that data. My point is that unless you need to perform very low level tasks such as writing a kernel or a hardware device driver then pointers are not needed. It is about choosing the right tool for the right task.
Pointers are quite dangerous to use.
Even an expert programmer makes mistakes from time to time and and undetected pointer error can be very hard to find later. In this section some of the strange details will be presented. Look in any C book and they usual comment on messiness of this syntax. The need for reference variables. Reference variables are included because in allows functions to pass parameters by reference instead of by value.