函数指针和指针函数有什么区别???!?!?

比如
int (*P)()
int *p()
这两个哪个是函数指针哪个是指针函数 并详细区分之?!

前一个是个函数指针,如果有个函数是这样定义的
int pfunction( )
那就可以用指针指向这个函数
p=pfunction;
然后调用时就可以这样用
p();
后一个是指针函数,他的返回值是一个指向整型变量的指针,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-24
int (*p)(参数表列)这个是定义一个指向函数的指针,返回值为整型。比如int max(int a,int b)将max换成(*p)
即可,p里放的是max函数的入口地址,所以,此时的p做自加自减等运算无意义。不能用*(p+1)表示函数的下一条指令。
int *p()是函数,此函数的返回值是个指向整型变量的指针变量。
***************************************************
以上是你需要的,下面是一些其它相关容易混淆的:
int *p[n]:定义指针数组P,它由n个指向整型数据的指针元素组成。
int (*p)[n]:P为指向含n个元素的一维数组的指针变量。
第2个回答  2007-11-24
前一个是函数的指针,p是个指针,指向返回int的无参数函数。
后一个是函数,它的返回值是个int指针,没有什么指针函数吧。。。
相似回答