C/C++

【C/C++】関数ポインタの使い方をわかりやすく解説

関数ポインタの使用例はいくつかありますので、1つずつ見ていきましょう。

関数のポインタを渡す

ポインタ変数を用意し、関数のポインタを渡してみます。

関数をポインタを受け持つポインタ変数の定義は若干複雑です。
代入する関数に引数がある場合は、宣言の時「型名」を記述してください。
今回は「int」型の引数が2つあるので、「int, int」としました。

この、関数のポインタを代入することが関数ポインタの概念になります。

void型のポインタ変数

普通、変数宣言でvoid型を使用することはできません。
しかし、ポインタ変数となってくると話しは変わります。
プログラム例を見ていきましょう。

void型の場合も、先ほどと同じやり方でできます。
では次に、このvoid型の関数ポインタを使った2つの応用例を見ていきましょう。

関数の引数に、void型の関数を代入
関数の引数に「int」型の関数や「double」型の関数を代入することは、関数から値が返されるのでできますが、「void」型の関数ではどうでしょうか。
もちろん「int」型の関数と同じやり方では上手くいきません。
ここもポインタの出番です。

このように、関数名を指定するという小技もできます。

関数ポインタ配列

次は配列変数で関数を管理する方法を紹介します。

具体的に言うと、ポインタ変数の配列となります。
ポインタ変数の配列ということは、中身はすべてポインタになります。
そのポインタというのが、関数ポインタということになります。
実際にプログラムを見てみましょう。

このように、似たような機能を持つ関数を、配列変数にまとめることで、プログラムをわかりやすくすることができます。
この関数ポインタ配列は非常に便利なので、使える時に使うことをオススメします。

まとめメモ

・関数ポインタは、ポインタ変数に関数のポインタを代入するもの。void型の関数のポインタも、同じやり方でできる。
・関数の引数には、値が必ず入る。そのため、void型の関数を代入する場合は、ポインタを指定しなければいけない。


【筆者オススメ!】



↓C/C++をさらに勉強したい方へ(スポンサーリンク)


ABOUT ME
IT系だんし
プログラミングが大好きな人。 趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です