您的位置:程序门 -> c/c++ -> c++ 语言



int*(*p)(int*)是什么意思?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


int*(*p)(int*)是什么意思?[已结贴,结贴人:popunit]
发表于:2007-03-14 15:34:24 楼主
如题
发表于:2007-03-14 15:37:361楼 得分:0
函数指针.
(*p)--p为函数指针
(*p)(int*)--参数为int*
int   *(*p)(int*)--返回值为int*
发表于:2007-03-14 15:41:002楼 得分:0
cout   < <   typeid(p).name();看一下。
发表于:2007-03-14 15:41:513楼 得分:0
一层一层剥开看。
发表于:2007-03-14 15:55:464楼 得分:0
还是看不懂啊
发表于:2007-03-14 16:27:145楼 得分:5
int   a(int*)
这是一个函数, 返回int值,函数名为a带一个int*的参数

int   (*p)(int*)
这是一个函数指针, 指针名为p, 这个p可以指向象上一个函数那样的函数比如:
p   =   a;   给指针p赋值

象你的那个 int*(*a)(int*)就是说a是一个函数指针。它可指向象下面这样的函数
int*   fun1(int*)
int*   fun2(int*)

这知道这样说你是不是能明白了。
发表于:2007-03-14 16:28:136楼 得分:5
c中就有的东西了

函数指针,int*(*p)(int*)   这样的定义中:   变量p是一个指向特定函数的指针变量(可以用p来保存函数的入口地址)

例子容易说明白~

int*   ftn(int   *ivalue);   //   ftn是一个参数为int*,返回值为int*   的函数

那么可以将ftn的入口地址赋给之前的   函数指针p了,像这样     p   =   ftn;   然后可以通过p来调用函数,   比如:
int   a   =   0,   *b;
b   =   p(&a);

这样单独的用意义不大,函数指针一般作为函数参数来用,给设计带来弹性~

发表于:2007-03-14 16:34:137楼 得分:0
函数指针的声明,比起其它的指针声明有点怪,刚开始是不习惯。
它的形式是这个样子的。记住这个以后就没问题了。

返回类型(*指针名)(参数列表);
在上面的形式中,()和那个*很重要, 两个一个都不能少。
发表于:2007-03-14 16:40:058楼 得分:0
谢谢
发表于:2007-03-14 16:41:189楼 得分:0
看看这篇文章你应该就会懂了

http://club.it.sohu.com/r-program-73094-0-2-0.html
发表于:2007-03-14 17:16:0610楼 得分:0
ouyh12345(五岭散人)已经解释的很清楚了,建议先理解函数指针


快速检索

最新资讯
热门点击