如何用函数指针调用函数

如何用函数指针调用函数

先举一个用函数指针调用函数的例子

int Func(int x); /*声明一个函数*/

int (*p) (int x); /*定义一个函数指针*/

p = Func; /*将Func函数的首地址赋给指针变量p*/

int Func(int x);

这一句是声明一个函数,是我们要被函数指针调用的函数,而且函数名表示函数的首地址。

int (*p) (int x);

这里定义了一个函数指针,int (*p) (int x); 里的int指的是函数的返回值,指要被调用的函数的返回值是整形。

int (*p) (int x); 里的*P指的是指向函数首地址的指针变量。

int (*p) (int x); int x表示被调用的函数参数是一个且是整形。

p = Func;

这一句是把被调函数的首地址存在定义的指针变量里,用来指向被调函数。

定义的函数指针和声明的函数一一对应,对照着看会很清晰。

举一个完整实用简单的例子来帮助理解

# include

int Max(int, int); //函数声明

int main(void)

{

int(*p)(int, int); //定义一个函数指针

int a, b, c;

p = Max; //把函数Max赋给指针变量p, 使p指向Max函数

printf("please enter a and b:");

scanf("%d%d", &a, &b);

c = (*p)(a, b); //通过函数指针调用Max函数

printf("a = %d\nb = %d\nmax = %d\n", a, b, c);

return 0;

}

int Max(int x, int y) //定义Max函数

{

int z;

if (x > y)

{

z = x;

}

else

{

z = y;

}

return z;

}

输出结果是:

please enter a and b:5 6

a = 5

b = 6

max = 6

相关推荐

汽车更新系统要多少钱?
365betapp

汽车更新系统要多少钱?

📅 08-05 👁️ 5805
分类:1994年世界杯足球赛球员
365betapp

分类:1994年世界杯足球赛球员

📅 08-04 👁️ 9008
情字代表什么生肖动物
365betapp

情字代表什么生肖动物

📅 08-05 👁️ 5193