ポインタ、ポインター(英:pointer)とは、何かを指し示すもののこと。
- プログラミングの分野において、メモリ上のアドレスを指すデータ型。本稿で解説する。
- マウスポインタ(カーソル)→マウスカーソル
- レーザーポインタ
- 獲物の位置を示す役割の猟犬。またそのために改良された犬種の一つ。
概要
ポインタは、メモリ上のアドレスを指すデータ型のことである。その型の変数であるポインタ変数のことをポインタと呼ぶこともある。主にC言語やその派生言語で使われる。
C言語の初心者が挫折しやすい概念のひとつ。トリッキーなコーディングが跋扈していることもそれに拍車をかけている。このため、概念のひとつに過ぎないにも関わらず、ポインタの話題に特化した書籍が多数出版されている。
C言語においては、文字列操作や動的なメモリ確保(malloc)を行うとき、避けて通れない。そのため、ポインタはC言語を使いこなすためには、誰もが習得しなければならない概念といえる。
ポインタと参照
ポインタは加減算の対象になり、整数型との型変換をも行うことができる。そのため、無効なアドレスを容易に作り出すことができ、バグの温床となりやすい。また、メモリアドレスが入っているからといって必ずしも物理メモリのアドレスであるとは限らず、近代的なOSであればほぼ間違いなく論理アドレスであろう。
ポインタに似たような概念に参照がある。参照はNULLにならない、加減算ができないといった点でポインタと異なり、ポインタのフリーダムさを自重した感じになっている。
叫び
カッコ悪いと思っているかもしれないが、[]演算子が使える局面では積極的にこれを使おうよ(保守担当の心の叫び)。
関連動画
関連項目
- 2
- 0pt