int (*func)(int *p); 首先找到那个未定义的标识符,就是func,它的外面有一对圆括号,而且左边是一个*号,这说明func是一个指针,然后跳出这个圆括号,先看右边,也是一个圆括号,这说明(*func)是一个函数,而func是一个指向这一类函数的指针,就是一个函数指针,这一类函数具有int*类型的形参,返回值类型是 int。
引用一个对象实例和该对象的实例方法。在 C 或 C 中与委托最接近的是函数指针,但函数指针只能引用静态函数,而委托可以同时引用静态方法和实例方法。在后一种情况中,委托不仅存储对方法入口点的引用,还存储对调用其方法的对象的引用。与 C 函数指针不同,委托是完全面对对象的;与指向成员函数的 C 指针不同,委托同时封装对象实例和方法。委托声明定义从类 System.Delegate 派生的类。委托实例封装一个或多个方法,每个方法都被称为可调用实体。对于实例方法,可调用实体由一个实例和该实例上的方法组
函数返回值可以是 int char float等,当然也可以是地址值,那么函数返回值是地址值得函数就定义为指针函数。指针变量可以指向变量地址,数组,字符串,自然也可以指向函数了。已知每个函数在编译的时候,系统会分配给函数一个入口地址,函数名表示这个入口地址,定义指向函数的指针变量称之为函数的指针变量。