C++ 如何运行在C+;中有指针的函数+;?
假设我有一个指向名为C++ 如何运行在C+;中有指针的函数+;?,c++,c,C++,C,假设我有一个指向名为foo的函数的指针。现在如何运行此函数?与运行任何其他函数的方式相同: foo(); 如果您的函数具有以下签名: void foo(int x); 您已经定义了以下指针: void (*ptr)(int) = foo; 您可以通过“ptr”执行foo,如下所示: ptr(12); //actually calls foo(12); 假设函数指针是fp void (*fp)(int); 从函数指针调用函数有两种方法: fp(3); 或 这两种方法是等效的,但都有各自
foo
的函数的指针。现在如何运行此函数?与运行任何其他函数的方式相同:
foo();
如果您的函数具有以下签名:
void foo(int x);
您已经定义了以下指针:
void (*ptr)(int) = foo;
您可以通过“ptr”执行foo,如下所示:
ptr(12); //actually calls foo(12);
假设函数指针是
fp
void (*fp)(int);
从函数指针调用函数有两种方法:
fp(3);
或
这两种方法是等效的,但都有各自的优点。在第二种形式中,它向读者明确表示程序中没有名为
fp
的函数,但fp
是一个函数指针 根据“声明遵循使用”规则,您也可以像(*ptr)(12)
一样调用它。函数指针的特殊之处在于,访问指向的值不需要取消对指针的引用。函数的特殊之处在于它们可以被取消引用并产生相同的值:(****ptr)(12)
。
(*fp)(3);