指针函数与函数指针的不同与使用
在一次学习OPENCV的过程中,自己错将函数指针视为指针函数,而不能理解文中笔者将
一、指针函数
类型标识符 *函数名(参数表)
int *f(int x);
上式表明:这是一个函数,返回一个int类型的指针,可以和其他函数一样看待,只是有的返回整数、有的无返回值、有的返回指向整数类型的指针;
二、函数指针
类型标识符 (*指针名)(参数类型)
void (*f)(int);
当然也可以写成void (*f)(int x),但不常用。
这个作用,类似一个指针变量,但其指向一个函数而已。该变量可以被利用传参。
e.g. void fun(int x);
f=&fun;
这样,函数指针就指向这个函数了,然后可以利用函数指针来传递函数。
因为这是引用,所以,改变f就改变fun了。
此时使用f(1);就和调用fun(1);用法一致了。