指针函数是个函数,是返回指针类型到函数。
函数指针是个指针,是指向函数地址到指针。
区分两者的关键点是,函数名是否用*和括号“包围”起来。
1 #include <stdio.h> 2 int *create_node(int); //指针函数声明 3 int *(*fun)(int); //函数指针声明, 指向返回int*且有一个int参数的函数. 4 5 //定义一个指针函数(返回值是指针的函数) 6 int *create_node(int val){ 7 int *a = new int; 8 *a = val; 9 return a; 10 } 11 12 int main (){ 13 //通过函数名称调用函数, 这个函数名称就是函数的指针 14 //函数名称指向就是函数到地址 15 int *a = create_node(4); 16 printf("a_val : %d\n", *a); 17 delete a; 18 19 //函数指针是个指针变量 20 fun = create_node; 21 int *b = fun(5); 22 printf("b_val : %d\n", *b); 23 delete b; 24 25 return 0; 26 }
就简单说明到这里吧, 看代码注释。^_^