美人すぎない化粧品販売員がアプリ開発を目指す

Javaの構文、オブジェクト指向、APIなど、プログラミング初心者の私がアプリ開発までに理解したことをまとめたブログ

値渡しと参照渡しの違い

〈値渡し〉

 

普通の変数を呼び出して渡そうとすると、

まず呼び出し元の変数の中の値(ex.100)がコピーされて

呼び出し先に渡される

 

同じ値を持った独立した変数が2つ出来るイメージ

・・・お互い独立した変数なので、

呼び出し先で渡された値を変えても(x=120に変更)

呼び出し元の変数には影響しない(x=100のまま)

 

〈参照渡し〉

 

配列(参照型)を呼び出して渡すと、

渡している配列が入っている先頭番地の情報が渡される

 

例えば、 呼び出し元の変数arrayの先頭番地が883番地だとすると、

  呼び出し先にはarrayの中身{1,2,3}がコピーされて渡されるのではなく、

  呼び出し元が指している番地情報である883番地が渡される

 

 2つの変数が単に1つの独立した実体(この場合だと配列)実体を

       矢印で指して表しているというようなイメージ

・・・両者とも同じ実体を指しているので、

  呼び出し先で配列の実体を書き換えると(array={1,2,3}を{2,3,4}に変更)

  呼び出し元の情報も書き換わる(array={2,3,4};)