ポインタの表記法


<ポインタ型変数>
  
ポインタ型の変数を宣言するには、変数の前に*(アスタリスク)を付けて宣言します。「*」は、掛け算の演算子ですが、この場合はポインタであることを示す記号になります。型名は指し示す先の変数の型に合わせます。たとえば 「int *pa」 は、int型の変数を指し示すポインタ変数paを宣言するという意味です。同様に、 「char *pb」 は、char型の変数を指し示すポインタ変数pbを宣言したことになります。ここで注意したいのは、例えば 「int *pa」 としたとき、ポインタ変数の名前はあくまでもpaであり*paではありません。上の宣言は「(int *)pa」と考えたほうが分かり易いでしょう。つまり、ポインタ変数   pa は、int*型(intへのポインタ型)であることを宣言しているのです。

ポインタ変数の宣言

         (型名) * 変数名 ;


<&演算子>
  
アドレス演算子「&」は、変数の前に付けることでその変数のアドレスを取り出します。アドレスを取り出すと言っても、そのアドレスの値について特に意識する必要はありません。&演算子で取り出したアドレスをポインタに代入すると「ポインタがその変数を指し示すようになる」ことさえ把握していればよいのです。


<*演算子>
     「*演算子」はポインタの指し示す変数を参照するための演算子です。ポインタ変数の前に「*」を付けることによって「ポインタの指し示す変数の分身」として働きます。

(例 2.1)
                main(void)
              {
                    int a;                (int型変数aを宣言)
                     int*pa;            (int型の変数を指し示すポインタ変数paを宣言)
                    a=10;            (変数aに10を代入)
                    pa=&a;           (ポインタ変数paに変数aのアドレスを代入)
                printf(”%d,%d¥n”,a,*pa)
          
               

実行結果
                 10,10

実行結果から分かるように、ポインタ変数paに変数aのアドレス「&a」を代入した後は、「a」は「*pa」と同値となりますから、「*pa」を「a」の分身として使用することが出来ます。


                  


「基礎講座もくじへ」

「Q&Aもくじへ」

「つぎへ」