メモリ上のデータとポインタ

 ここまで、ジュースの自動販売機と電車の切符に例えて、ポインタがどういうものかについて説明してきました。このあたりで、コンピュータ処理に焦点を合わせなおして、話を進めていきたいと思います。

 以前にもお伝えしたとおり、ポインタの使い方は、変数を扱うのとほぼ同じです。変数は、机(メモリ)の上に置かれた箱のようなものであると例えるなら、ポインタは箱が置かれている場所が指定されたものであると言えます。箱が置かれた場所のことをアドレスと呼んでいます。

 アドレスと呼ぶくらいですから、家の住所みたいなものです(実際のメモリ上のアドレスは、16進数の数値で表されるのが一般的ですが)。田中太郎さん宛にお手紙を送ることを考えた場合、田中太郎さんの住む家の住所に、お手紙を送ってもらいます。田中太郎さん宅という変数の中身が田中太郎さん本人であり、田中太郎さん宅というポインタの中身は「○○県」からはじまる住所です。田中太郎さん宅の住所にお手紙を届けるのと同じように、ポインタの中に入っている(ポインタの中で示されている)メモリ上の番地(アドレス)の中に、整数や小数、文字を入れる、という形です。メモリ上の1000番地に「100」という整数を入れる、という形です(メモリ上のどこのアドレスを使うかは、コンピュータが自動で決めます)。

 ポインタの使い方は、まず、変数と同じような形でポインタを使うことを宣言します。ポインタが示すアドレスに入れるものによって、整数型、小数型、文字型と宣言を使い分けるのは変数と一緒です。そして、ポインタにアドレスを割り当てて(先ほども書いたように、どこのアドレスを使うかについては、コンピュータが自動で割り振ります)、そのアドレスが示すメモリ上の場所に、何らかの値を入れるようにプログラムを書いていきます。具体的なC言語のポインタの書き方は、次回の記事で扱いますが、普通の変数の場合と似ていますので、実際に使う場合、間違いやすいかもしれません。その点は注意して下さい。

 ここまで、全くプログラムを書くことがなくて、つまらなくなってきたかもしれませんので、次回、実際にポインタの書き方を解説していきたいと思います。

■スポンサーリンク

このページの先頭へ