C言語で扱えるデータの内,実数型,関数型,配列型の扱い方を見ました。残りの複素数型,ポインタ型,構造体型の内,ここではポインタ型を見ます。
ポインタ型データとは,アドレスのことです。「アドレス」とはメモリ箇所の番地です。メモリの1単位は1バイト,そして,それが連なってメモリは構成されています。例えば,次のような具合です。
アドレス | 8257 | 8258 | 8259 | 8260 | 8261 | 値 | 't' | 'e' | 's' | 't' | '\0' |
アドレス 8257
のメモリ箇所に記憶されている値は,文字定数で表すと 't'
という意味です。ポインタ型データは,値側ではなく,アドレス側のデータのことです。そして,ポインタ型データを扱う変数を,単にポインタと言います。
アドレス自体は十六進法で表すと 0x7fff53c8db84
のように固定的に存在しますが,C言語ではデータの型によって確保するメモリ領域が異なるため,記憶するデータの型によってポインタも区別します。記憶するデータ(上の表の値側)の型がT
の場合,アドレスをT
へのポインタ型データであると考えます。型T
を被参照型(referenced type)と言い,ポインタ型は被参照型からの派生型となります。