c言語の配列関数ポインタの活用法
こんにちわ、慶さんです。
今回は関数ポインタの便利なところをあげたいと思います。
ポインタというと難しいイメージがあるのですが、実際にはそんなに難しい概念ではありません。ポインタ変数とはあくまで、他の変数を指すアドレスを格納する変数のことです。
関数もアドレスを持っているので、ポインタで参照することができます。
便利な点を3つあげたいと思います。
⑴コマンドの値によって、関数を選択する場合、本来は、if-else文などで複数記述しなければならないところを一行で済みます。
⑵⑴によって可読性が優れている。
⑶関数を増やしたい場合、可読性を壊さずに、容易に変更することができる。
主な理由は以上です。
書き方もとてもシンプルです。
int (*func[2])(int,int);
関数ポインタの宣言、引数int型で2つ持ち、戻り値はint型の関数をポインタで指定できます。
func[0]=funcA;
func[1]=funcB;
func[2]=funcC;
関数のアドレスをポインタ変数に格納する。
scanf("%d",cmd);
func[cmd](cnt,avg);
関数ポインタで、関数に直接アクセスし、操作できます。これにより、容易にアクセスすることが出来ます。
以上。