いくつかのプログラミング言語が提供するデータ型の一種で、データが存在するメインメモリ上の位置を表現する値を格納するための型です。
単純にいえば、ポインタ(ポインタの値)を格納する型です。メインメモリ上のあるバイトを表現する値(多くの場合でメモリアドレス)を保持するか、どこも指し示していないことを表すヌルポインタを保持します。
C言語ではスカラ型に分類されます。関数型、オブジェクト型、不完全型から派生して作られる型であり、そうした型の実体(エンティティ)への参照を提供する値を持つオブジェクトのための型とされています。派生とはつまり、元の型(たとえば int型)からポインタ型(たとえば int*型)を作ることを指します。
参照される側の型を総称して、被参照型(referenced type)と呼びます。被参照型 T から派生したポインタ型のことを、「Tへのポインタ」(pointer to T)と呼びます。
オブジェクト型や不完全型から派生したポインタ型を総称して、オブジェクトポインタ型と呼びます。また、関数型から派生したポインタ型を関数ポインタ型と呼びます。
C++ ではスカラ型に分類されるのと同時に、複合型(compound type)にも分類されています。単一の値を保持しているという意味ではスカラ型であり、ほかの型との組み合わせ(int型へのポインタ型である)という意味では複合型であると考えられるためです。
オブジェクト型あるいは void へのポインタ型を総称して、オブジェクトポインタ型と呼びます。ただし、クラスの静的でないメンバを指し示すものは、メンバポインタ型として区別されます。また、関数を指し示すものは関数ポインタ型と呼びます。
Programming Place Plus のトップページへ
| はてなブックマーク に保存 | Facebook でシェア | X で ポスト/フォロー |
| LINE で送る | noteで書く |
|
| 管理者情報 | プライバシーポリシー |