next up previous
Next: アドレスの取得 Up: ポインタと循環リスト Previous: ポインタと循環リスト

ポインタ

ポインタの説明をする前に,計算機上でデータがどのように格納されているかを 簡単に説明する.計算機上では,メモリと呼ばれる記憶素子を用いてデータ,プ ログラムなどを記憶している.

このメモリは,基本的には一つの素子で1bit(0か1)の情報を記憶する.通常はこ の1bitの素子を8個まとめて,8bit(=1 byte)単位で情報を記憶する gif

この1 byte単位の記憶を計算機上で管理するために,それらに連続した番号が振っ てある.これがアドレス(番地)と言われるものであるgif.計算機上で扱われるほぼすべての情報は,このメモ リ上で管理されているので,アドレスさえ分かればアクセスすることが可能であ る.

では,例えばint型の変数はどのようにメモリ上に管理されているであろうか?

本演習で使用するワークステーションでは,int型は4byteで表される.このため, 例えば int i; と宣言されたint型の変数はメモリ上では

figure16

のような形で格納される.

i = 1234; というような演算は,この場合,メモリ上の0x005F5834〜 0x005F5837の領域に1234という値を書き込む,という処理になる.具体的にいう と,0x005F5834には0x00を,0x005F5835には0x00を,0x005F5836には0x04を, 0x005F5837には0xD2を書き込むことで,並べると0x000004D2(10進数で1234)とい うデータを作成している.

ポインタとは,このようなアドレスを管理するための変数である.すなわち,ポ インタはデータのメモリ上の位置を指し示す特殊な整数型の変数である gif

shadebox33




2000年09月06日 (水) 18時26分54秒 JST