C言語:ポインタ (関数ポインタ)

C言語のポインタについて。

ポインタは、メモリ上のデータの場所を指し示す(point)機能です。データの場所をアドレス(address)といいます。

C言語では、データを、ポインタを通して間接的に操作できます。

レストランで料理を頼むとき、メニューを指してウェイターに注文しますね。コックさんは、ウェイターから注文を聞いて料理を作ります。ポインターとは、ここでメニューのようなものです。

C言語での関数は、処理の手続きをまとめたものです。関数もアドレスを持つので、ポインタを通して関数を実行することができます。

f:id:hiroki802:20150119201530p:plain
ここでは、関数ポインタとしてfn_ptrを宣言しています。その関数ポインタにfuncという関数へのポインタを代入しています。その後、*ptrを利用してfn_ptrが指す先、つまり、関数funcを実行しています。