c++中int(*ptr)();这是什么意思啊 ptr貌似是指针后面的空括号什么意思?答案说p是指向一个函数的指针?

答案说p是指向一个函数的指针?这么说使得函数返回一个int类型的值

每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。

函数指针的声明方法为:
函数类型 (标志符指针变量名) (形参列表);
注1:“函数类型”说明函数的返回类型,“(标志符指针变量名 )”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

函数类型要对应,参数列表也要对应。
int(*ptr)();就是指向一个返回值为int,参数为空的函数的!

参考资料:http://baike.baidu.com/view/1604730.htm
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-18
定义一个函数指针 int(*ptr)() , 所有 int function(void) 类型的函数都可以被这个函数指针引用,也就是无参数,返回int的函数都可以写。。。 只要你写 ptr=function 之后 ptr()和function()是同样的结果。。。。如果有多个函数 f1() f2() f3()
你写 ptr=f1; ptr(); 调用的是f1()。。。 写ptr=f3(),调用的是f3(),函数指针的用处更多的是用于函数回调,把自己的指针给另一个对象,他会在满足条件时调用该函数,这种应用非常多,我们的所有程序的界面控制,比如键盘鼠标控制本质上都是函数回调,比如键盘控制某函数调用,就向键盘消息处理程序发送函数指针,等待按键时改程序会调用该函数,实现键盘控制。。。。
第2个回答  2013-05-18
你应该查看一下指针函数和函数指针的区别,教材上应该有的!
相似回答