最近の言語はポインタを使わせないだろ。バグやセキュリティホールの原因になるから。
参照渡しとポインタは似てるようで違うものだ。ポインタでも参照渡しと同じ事は出来るけど。

ポインタっていうのはアドレスを渡すから、そのアドレスを足したり引いたりして別の場所を参照できる。
普通はコンパイルするときに一度アセンブラコードに落とすんだから、言ってみればCのポインタなんかはアセンブラのアドレス操作を使えるようにしてるとも言える。

一方の参照は、アドレス操作ができないから、単に複数の名前で同じ変数を指すだけ。
安全だけど自由度は低い。