函数指针和指针函数

採用空指针作为终止符,在树种增删元素时,就不必修改遍历数组的代码。

函数指针定义函数类型(*指针变量名)(形参列表);函数类型说明函数的返回类型,由于()的优先级高于*,所以指针变量名外的括号必不可少,后面的形参列表表示指针变量指向的函数所带的参数列表。

同样的,函数、指针这两个词结合的顺序不同其意义也不同,即指针函数与函数指针的意义不同。

至于为什么func与&func的含义相同:对于函数func来说,函数的名称就是函数代码区的常量,对它取地址(&func)可以得到函数代码区的地址,同时,fun本身也可以视为函数代码区的地址。

**总结:**函数指针是一个指向函数的指针,而指针函数只是说明它是一个返回值为指针的函数。

与其他指针变量相类似,如果指针变量pi是指向某整型变量i的指针,则_p等于它所指的变量i;如果pf是指向某浮点型变量f的指针,则_pf就等价于它所指的变量f。

通过用(*pf)取出存在这个地址上的函数,然后调用它。

**最后需要注意的是,指向函数的指针变量没有++和–运算。

函数指针的定义形式为:>returnType(*pointerName)(paramlist);returnType为函数返回值类型,pointerName为指针名称,paramlist为函数参数列表。

>char*fun(char*p1,char*p2)>>不过也可以将其返回值定义为void*类型,在调用的时候强制转换返回值为自己想要的类型。