タグ

ブックマーク / norikone.hatenablog.com (1)

  • 値渡し、アドレス渡し、参照渡しの違いをメモリマップ的な視点で考える - 備忘録の裏のチラシ

    結論 値渡し 仮引数が確保したメモリの値に、引数として渡す変数の値部分をコピーする方法 アドレス渡し 仮引数が確保したメモリの値に、引数として渡す変数のアドレス部分をコピーする方法 参照渡し 仮引数に引数と同じメモリ領域を指させる方法 背景 値渡しや参照渡しのような「◯◯渡し」という言葉はよく耳にはしますが、その意味はよく理解できていませんでした。ググって解説記事を幾つか読んでみても、記事によって書いてあることが違ったり、言語によっても呼び方が違ったりと、なかなか混沌としている様子。 例えば Java では、メモリ上のインスタンスの場所を指し示す実体(変数が持つ値のこと)を「参照」と呼びます。ですから、この「参照」の値(アドレス番地)を関数に渡すことを「参照渡し」と呼ぶことに違和感はありませんが、C++ などの言語で言うところの参照渡しとは意味が違ったりします。このような状況から、どのよう

    値渡し、アドレス渡し、参照渡しの違いをメモリマップ的な視点で考える - 備忘録の裏のチラシ
    kabakiyo
    kabakiyo 2019/09/30
  • 1