指向函数的指针
#include <stdio.h>
int square(int num)
{
return num * num;
}
int main(void)
{
int num;
int (*fp)(int);
printf("please input a number:");
scanf("%d", &num);
fp = square;
printf("fp = %p, %d
", fp, (*fp)(num));
return 0;
}
函数指针数组
#include <stdio.h>
void function1(int);
void function2(int);
void function3(int);
int main(void)
{
//根据优先级,f[3]是一个数组,*f[3]说明数组元素都是指针类型,3个元素都是指向参数是int返回类型是void的函数
void (*f[3])(int) = {function1, function2, function3};
int choice;
printf("输入一个数:范围[0-2]");
scanf("%d", &choice);
while (choice >= 0 && choice <= 2) {
(*f[choice])(choice);
printf("输入一个数:范围[0-2]");
scanf("%d", &choice);
}
printf("程序运行结束。
");
return 0;
}
void function1(int choice)
{
printf("输入了%d,运行了function1函数。
", choice);
}
void function2(int choice)
{
printf("输入了%d,运行了function2函数。
", choice);
}
void function3(int choice)
{
printf("输入了%d,运行了function3函数。
", choice);
}