C言語でポインタを使って関数を呼び出す方法は何ですか?
C言語では、関数をポインタを使って呼び出すことができます。ポインタで関数を呼び出す構文は次の通りです:
- 関数ポインタを宣言する:関数のプロトタイプを使用して、関数ポインタの型を定義します。
返回类型 (*指针变量名)(参数列表);
- 関数のアドレスをポインタ変数に代入する:関数の名前(またはアドレス)を関数ポインタ変数に代入する。
指针变量名 = 函数名;
- ポインタ変数を使用して関数を呼び出す:関数を呼び出すためにポインタ変数と関数呼び出し演算子を使用します。
(*指针变量名)(参数列表);
以下は、関数をポインタを使って呼び出す方法を示すサンプルコードです。
#include <stdio.h>
// 声明函数原型
void hello();
int main() {
// 声明函数指针变量
void (*funcPtr)();
// 将函数地址赋值给指针变量
funcPtr = hello;
// 通过指针变量调用函数
(*funcPtr)();
return 0;
}
// 定义函数
void hello() {
printf("Hello, World!\n");
}
上記のコードを実行すると、結果は次のようになります:
Hello, World!
上記の例では、最初に void hello(); の関数プロトタイプが宣言され、main() 関数内で void (*funcPtr)(); の関数ポインタが宣言され、関数 hello のアドレスがポインタ変数 funcPtr に割り当てられました。最後に、(*funcPtr)(); を使用して関数 hello を呼び出しました。