600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【C语言】函数指针数组和指向函数指针数组的指针

【C语言】函数指针数组和指向函数指针数组的指针

时间:2019-12-17 06:53:28

相关推荐

【C语言】函数指针数组和指向函数指针数组的指针

一、函数指针数组

1.1函数指针数组的声明

函数指针数组的声明如下,所谓函数指针数组就是在之前的函数指针的基础上增加了[],由于[]的优先级高于*,故pf先与[]结合,说明它是一个数组,再与*结合说明数组中的元素的类型是指针,再看后面的参数列表,说明每一个指针都指向一个函数的入口地址,并且指向的函数的返回类型为int。

int (*pf[])(int, int);

1.2函数指针的使用

以下代码展示了函数指针数组的一个简单的应用。

#include <stdio.h>int Add(int x, int y){return x + y;}int Sub(int x, int y){return x - y;}int main(){int a = 10;int b = 20;//定义一个有2个指针的数组,指针指向一个函数,该函数有两个整型参数并返回一个整型数int(*p[2])(int, int);p[0] = Add; //函数指针数组的第一个元素指向Add函数p[1] = Sub;printf("%d, %d\n", p[0](a, b), p[1](a, b));system("pause");return 0;}

二、指向函数指针数组的指针

在此,仅作介绍,它也叫函数指针数组的指针。下面的定义怎么理解呢?首先,p和*结合说明是一个指针,之后与[]结合,说明是一个数组指针,再与*结合说明用一个指针指向了数组指针,之后又指向了一个函数的入口地址,该函数有两个int类型参数,返回值是int。

int (*(*p)[])(int, int);

总而言之,指向函数指针数组的指针就是在函数指针数组的基础上,再加一个*表示一个指针去指向它。当然,既然有函数指针数组的指针,则必然还有函数指针数组的指针数组,只不过一般的编程用到的情况很少,如果读者有兴趣的话,可以去研究一下。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。