関数へのポインタ
そこで宣言されている関数へのポインタのプロトタイプに適合しさえすれば、callerの第1引数には、どんな関数でも渡すことが可能である。
3番目の例でも関数へのポインタを引数として他の関数に渡して用いている。関数fは、指定された区間で積分 ∫ a b f ( x ) d x {\displaystyle \textstyle \int _{a}^{b}f(x)\;dx} の近似を計算する関数integへ渡されている。 x {\displaystyle x} における f ( x ) {\displaystyle f(x)} の値を求めるために、f(x)がintegから呼び出されている。integでは、「double型の引数を1つ取り、double型の値を返す関数」でありさえすれば、どんな関数でも計算させることが可能である。
なお、関数へのポインタを定義する際には、事前にtypedefを用いて関数型もしくは関数ポインタ型のエイリアスを定義しておくと便利である。
関数ポインタを引数として渡すことで、処理を外部から組み込む(カスタマイズする)ことが可能である。関数ポインタを受け取って関数を呼び出す側は、その関数内で何が実行されるかを関知する必要がない。引数として渡される関数は、コールバック関数と呼ばれることもある。主にイベント処理や、判断を外部に任せて処理を行なうときなどに用いられる。