参照が使われる理由としては、配列1000個を関数引数などにわたされたら、1000個も関数の仮引数にコピーしなくちゃいけなくて大変なので、 配列1000個の先頭のアドレス(と配列個数の2個)だけ渡せばそこから1000個処理しても同じ事出来るので、ならば配列の方がデータ渡すの少なくて動作早くなる、という感じです。 文字列も文字の配列なのでだいたい同じ仕組みなのです。