関数:
・引数を渡すと戻り値を返すもの
・外部の変数から影響を受けない(引数が同じなら戻り値も同じ)
・外部の変数に影響を与えない(グローバル変数などを変更しない)
これだとインスタンスや配列などのオブジェクトを更新(状態の変更)ができない
そのために参照渡し(ポインタ)がある
参照渡しを使うことで状態を変更することができる
プログラミング言語は
基本的には値渡しが行われている
必要なところは自動で参照渡しをしてくれてる
(インスタンスを格納する変数にはインスタンスのポインタが格納されるなど)
自分で意識する必要はないが参照の値渡しなどに注意する