第32章 ポインタ天国

 C/C++言語ならばなくてはならないポインタ。その重要性は果てしないです。ですが、それだけ易しく教えますので安心して下さい。


 では、今回の要点です。


 では、いってみましょう。


 前回の復習を少しします。変数はメモリ上にあります。なので、変数はメモリ上の位置であるアドレスを持っています。座標のようなものですね。

 で、アドレスは単なる数値でした。単なる数値なら変数に入れてやることができるはず、と、ここまで前回話しました。

 その変数というのが、今回話すポインタです。ポインタなんて名前が付いていますが、基本的にただの変数です。int に毛が生えた程度です。

 では、早速そのポインタというのを見てみましょう。

プログラム実行結果例
// Ptr1.cpp
#include <iostream.h>

int main()
{
    char a;
    char* p;

    p = &a;
    cout << " p = " << (unsigned int) p << endl
         << "&a = " << (unsigned int)&a << endl;

    return 0;
}
 p = 6618608
&a = 6618608

 p がポインタです。char の後に * の付いた型名になっています。これは char 型の変数のアドレスを入れられるということになります。int 型のを入れたいなら int* 、float 型のを入れたいならなら float* になります。

 では早速アドレスを入れてみましょう。

p = &a;

 変数のアドレスは変数の前に & を付ければ得られました。で、それを p に代入しています。何のひねりもありません。

 では、p と &a がきちんと同じになっているか表示してみましょう。unsigned int で型キャストをしているのは符号なしの10進数として表示するためです。ここはあまり気にしないで下さい。

 両方とも 6618608 になっています。無事代入が成功したようです。(失敗などしないのですが...。)

 このように、ポインタはアドレスを格納できるのです。


 はい、今回はこれでお終いです。短いですけど、気にしないで下さい。ポインタは重要なのでゆっくりやっていきたいと思います。

 では、今回の要点です。


 次回はアドレスを保管してそれをどう使うかについて話します。それでは、次回まで。


第31章 メモリとアドレス | 第33章 ポインタ天国2

Last update was done on 1999.3.31

この講座の著作権はロベールが保有しています