函数指针

不知道你有没想过代码能不能像参数一样传递?

 
 

如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。

演示一下函数指针的基本用法

#include
“stdafx.h”

 
 

int Max(int
a,int
b)

{

return
a >= b ? a : b;

}

int main()

{

int(*pMax)(int, int);

pMax = Max;

int c = pMax(3,5);

printf(“%d\n”,c);

return 0;

}

下面的例子实现把函数当做参数传递的功能

#include
“stdafx.h”

 
 

int Max(int
a,int
b)

{

    return
a >= b ? a : b;

}

 
 

int Add(int
a, int
b)

{

    return
a + b;

}

 
 

int Func(int(*pF)(int, int),int
a,int
b)

{

    return
pF(a,b);

}

 
 

int main()

{

 
 

    int c = Func(Max, 3, 5);

    printf(“%d\n”,c);

    int d = Func(Add, 3, 5);

    printf(“%d\n”, d);

return 0;

}

 
 

2021年12月16日

22时15分

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注