指针函数和函数指针的区别,感觉函数指针就是函数名的引用而已;
指针函数:
如 int* func();
这个指针函数最后会return一个指针,可以指向数组地址,函数地址,以及链表地址等等。。。
指针函数:
如 int (*func)();
这个函数指针需要先定义一个函数指针,为 func,然后加入你想调用一个函数 int func1(int x);你就定义函数指针 int (*fun)(int x);
我自己写个Demo吧,测试过的:
#include <iostream>
using namespace std;
void Print(int x) {
x = 100;
cout << "print:" << x << endl;
}
int main() {
int ms = 0;
void(*p)(int );
p = Print;
(*p)( ms);
getchar();
}
结果:print:100
函数指针的作用在于是的程序更加深奥和封装函数的功能,比如定义在一个结构体中:struct Demo{
int (*p)();
int name;
}demo ;
然后调用demo.p(ms)多方便。