#include <stdio.h>
int sum(int a, int b)
{
return (a + b);
}
int main(void)
{
// 定义一个函数指针,返回类型int,两整型形参
int (*p)(int x, int y);
// 使用函数指针变量指向函数
p = sum;
// 进行调用函数
int temp = p(2, 3);
// 输出结果
printf("temp = %d", temp);
// 控制台打印信息
// temp = 5
return 0;
}
事例二:
函数指针变量作为函数形参
#include <stdio.h>
// 此函数第一个参数是函数指针
int function( int(*p)(int x, int y), int a, int b)
{
return p(a, b);
}
// 此函数是一般的函数,功能求和
int sum(int a, int b)
{
return (a + b);
}
// 此函数是一般的函数,功能求差
int differ(int a, int b)
{
return (a - b);
}
int main(void)
{
// 1. 将求和函数作为实参代入函数function中
int tempSum = function(sum, 2, 3);
printf("tempSum = %d\n", tempSum);
// 控制台打印结果:
// tempSum = 5
// 2. 将求差函数作为形参代入函数function中
int tempDiffer = function(differ, 2, 3);
printf("tempDiffer = %d\n", tempDiffer);
// 控制台打印结果
// tempDiffer = -1
return 0;
}