• ベストアンサー

 double (*foo)(double);

 double (*foo)(double); C のコードで上のように宣言されたとき,foo は何を表していますか? プログラミング初心者です. よろしくお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

関数ポインタですね。 状態変数等によって呼び出し関数を変える時に、関数ポインタのテーブルを引っ張ってきて呼び出したりすることがあります。 double (*foo[])(double) = {func1, func2, func3}; とかあった場合 int idx = 1; double param = 1.1; double ret; ret = (*foo[idx])(param); とすれば ret = func2(param); とするのと同じことです。

jiateng
質問者

お礼

少し調べて理解しました。関数のポインタですか・・想像できませんでした。 素早いご返答ありがとうございます。

関連するQ&A