您的位置:首页 > 其它

指针函数与函数指针

2014-04-04 19:40 267 查看
今天Mayuyu将要讲的是指针函数和函数指针,听着怎么这么绕口?没错,这两个概念及容易搞混,现在Mayuyu就来

给你讲讲它们的区别及用法。

(1)指针函数

从名字可以看出,它本质上是一个函数,这是一个返回值类型为指针的函数,比如:

#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;

int *Find(int x)
{
static int a[] = {0,1,2,3,4,5,6,7,8,9};
if(x < 0 || x > 9) return NULL;
return a + x;
}

int main()
{
int *p = Find(8);
cout<<*p<<endl;
return 0;
}


嗯,指针函数挺简单的,没有什么可以说的,接下来我们重点讲解函数指针。

(2)函数指针

同指针函数一样,从名字可以读出它是一个指针,可以把整个函数当作一个指针,进而对它进行操作。比如

#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;

int Find(int x)
{
static int a[] = {0,1,2,3,4,5,6,7,8,9};
if(x < 0 || x > 9) return -1;
return *(a + x);
}

int main()
{
int (*f)(int x);
f = Find;
cout<<f(5)<<endl;
return 0;
}


函数指针与指针函数的最重要区别就是一个是指针变量,而另一个是函数。

通过上面代码比较也很容易知道它们的区别了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: