а это не указатель, это ссылка. Ссылкой называется... скажем так, переменная, разделяющая в памяти адрес с другой переменной.
Лично я ими пользуюсь редко... В ряде случаев они удобны. Оправданы они, имхо, когда у тебя некий объект размещён в стеке, а тебе его нужно передать в функцию для изменения.
например,
void Fn(int *x);
...
int x = 3;
Fn(&x);
внутри Fn может возникнуть соблазн применить delete, что приведёт к ошибке - ссылка убережёт от таких соблазнов. (пример простейший, естественно).
другой пример
int Fn(int x);
....
int x = 3;
x = Fn(x);
всё бы ничего, однако при передаче x в функцию происходит его копирование, а при возврате - создание нового int. Для int это, конечно, некритично, а если у тебя будет объект размером в 10 Мб? А если таких объектов будет много? Непроизводительные затраты памяти и процессорного времени. Ссылки же избавляют от необходимости копировать объект - он всегда один, а ссылок на него много.
может ещё кто какие случаи оправданного применения приведёт...