C语言 指针数组如何存放函数地址

[复制链接]
查看11 | 回复5 | 2015-6-11 11:17:46 | 显示全部楼层 |阅读模式
1.函数指针的数组定义方法:返回值类型( * 指针变量名[Number]) (形参列表)。例如:double add(double a,double b){};double sub(double a,double b){};double mul(double a,double b){};double div1(double a,double b){};double (*oper_func[])(double, double) = {add,sub,mul,div1};//函数指针的数组定义2.函数指针是指向函数的指针变量。函数指针有两个用途:调用函数和做函数的参数。函数指针的声明方法为:返回值类型( * 指针变量名) (形参列表);“返回值类型”说明函...
回复

使用道具 举报

千问 | 2015-6-11 11:17:46 | 显示全部楼层
#include "stdio.h"void output(int x){printf("%d\n",x);}void main(){void(*test[100])(int);//函数指针数组的定义,我试验的只能是固定大小的数组,动态数组不知道怎么弄for (int i=0;i<100;i++){test = ...
回复

使用道具 举报

千问 | 2015-6-11 11:17:46 | 显示全部楼层
你的问题大家回答的差不多我,我只对最后的问题回答下:对函数指针数组的赋值必然得有一个个手工写的过程。...
回复

使用道具 举报

千问 | 2015-6-11 11:17:46 | 显示全部楼层
1、数组里面可以存放函数地址,这就是传说中的函数指针数组。2、数组指针就是一个指针里面存放数组的首地址的指针,int(* num)[ ]是这种类型。3、定义
typedef int (* a)(参数类型列表);//重定义函数名
a num[100];
int i ;
for(i = 1;i<=100;i+...
回复

使用道具 举报

千问 | 2015-6-11 11:17:46 | 显示全部楼层
这种情况,HS1(),HS2(),~ HS100() 这些函数的参数类型和返回值最好是完全相同的,这样才能放到同一个数组中才能再次对其调用并使用。举个例子,下面是省略简写的100个函数在for循环中分别被调用后输出内容和返回值的处理方法,实际使用中可以参照这种方式进行使用,真正一个一个赋值的方法应该是不会用到的。#include "stdio...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行