変数の渡し方

参照渡しとかの書き方をおぼろげにしかわかってなかったのだけど、いいまとめがあった。
http://www.mapee.jp/cpp/post_20.html

function(int var)
値呼び出し(値渡し)。
関数には値が渡される。
関数内で値を変更できるが、呼び出し元には値の変更は伝わらない。

function(int& var)
参照呼び出し(参照渡し)。
関数には参照が渡され、変更は呼び出し元に反映される。

呼び出し側で同じ書き方でも参照が渡されたり値が渡されたりするわけ?だとしたらもうやだC++

function(int *var)
要素へのポインタを渡す。

これは

function(int* var)

こう書いても同じ?なのか?
とりあえず参照渡しにはこれを使おうかな。