変数と記憶領域 - 関係性をイメージで理解する

変数と記憶領域 - 関係性をイメージで理解する

一般的なプログラムには変数があります。

変数は“記憶領域”を持ち、コンピュータ上の物理的な場所に値の記憶や取得を行います。

その仕組みのイメージを掴み、開発の理解を深めましょう。

ここでは変数と記憶領域の関係性について解説します。

記憶領域

プログラムは値の保持にコンピュータの物理的な記憶領域を使います。

具体的にはメモリやハードディスクなどのハードウェアです。

記憶領域は区画分けされており、1つの区画に1つの値を保持します。

記憶領域

変数

変数は記憶領域とその名称です。

名称として変数名を持つことで、プログラムから明示的に記憶領域にアクセスすることができます。

関連性

変数と記憶領域の関連性を流れを追って理解しましょう。

プログラムの起動

プログラムの起動直後はプログラムと記憶領域の繋がりはありません。

プログラムの起動直後と記憶領域

変数の宣言

変数の宣言で記憶領域を確保し、名前(変数名)を付けます。

変数の宣言と記憶領域の確保

値の代入

変数に値を代入すると、その変数に紐づいた記憶領域の値を書き換えます。

変数へ値の代入と記憶領域

値の取得

変数を参照すると、その変数に紐づいた記憶領域の値を取り出します。

変数の値を取得

プログラムの終了

プログラムの終了に伴い、変数に紐づく記憶領域を解放します。

変数と記憶領域の解放

※ プログラムによっては自分で解放する必要があります。

また、記憶領域の値が初期化されるかどうかはOSやプログラムにより様々です。


このように変数はプログラムの処理と物理的な記憶領域を繋げる役割を持ちます。

複数の変数

複数の変数がある場合も同様です。

変数を宣言すると、未使用の記憶領域を確保して繋げます。

複数の変数と記憶領域

変数の初期化

変数の初期化は意図しない動作を防ぐために重要です。

記憶領域は様々な処理で使い回されるため、変数の宣言のみの場合、他のプログラムで使用した値が入っている恐れがあります。

例えば、プログラムAが変数を使用するケースを考えます。

プログラムAと記憶領域

終了後に変数の記憶領域を解放しますが、値は残ってしまうことがあります。

プログラムAにおける記憶領域の解放

次にプログラムBが同じ記憶領域を確保した場合、値はプログラムAの時の値になります。

プログラムBと記憶領域

このような変数の値が不安定な状態は、不具合やエラーの原因になります。

自動で初期化するプログラムもありますが、変数の値を明確にするため、可能な限り明示的に初期化することを推奨します。

注意点

本ドキュメントは変数と記憶領域の関係性イメージです。

実際には記憶領域はもっと複雑で、詳細の理解にはハードウェアの知識などが必要です。

必要性に合わせて知識を吸収していきましょう。