関数へのポインター

関数へのポインターは、その関数の実行可能コードのアドレスを示します。 ポインターを使用して関数を呼び出し、関数を引き数として他の関数に渡す ことができます。関数へのポインターに対してポインター演算を行うことはできません。

関数の戻りの型とパラメーター型の両方によって、関数へのポインターの型が決まります。

関数へのポインターの宣言では、ポインター名を小括弧に入れることが必要です。 関数呼び出し演算子 () は、間接参照演算子 * よりも高い優先順位を持っています。 括弧がないと、コンパイラーは、指定された戻りの型へのポインターを戻す関数として、 そのステートメントを解釈します。 次に例を示します。

int *f(int a);       /* function f returning an int*                        */
int (*g)(int a);     /* pointer g to a function returning an int            */
char (*h)(int, int)  /* h is a function
                          that takes two integer parameters and returns char */

最初の宣言では、f は、int を引き数として取り、 int へのポインターを戻す関数として解釈します。 2 番目の宣言では、g を、int 引き数を 受け取り、int を戻す関数へのポインターと解釈します。

関連参照

IBM Copyright 2003