#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//函数指针数组
int add(int x, int y)
{
return x + y;
}
int sub(int x, int y)
{
return x - y;
}
int mul(int x, int y)
{
return x * y;
}
int div(int x, int y)
{
return x / y;
}
int main()
{
int* arr[5];
//需要一个数组,这个数组可以存放函数地址的数组,函数地址——函数指针
int(*pa)(int, int) = add;
int (*parr[4])(int, int) = { add,sub,mul,div };//parr就是存放函数指针的数组,不过这几个函数的类型必须相同
int i = 0;
for (i = 0; i < 4; i++)
{
printf("%d\n", parr[i](2, 3));
}
return 0;
}
一个数组可以存放函数地址,即为函数指针数组
不过存放函数的类型必须相同
练习
char* my_strcpy(char* dest, const char* src);
//写一个函数指针pa,使其能指向my_strcpy
答案:char* (*pa)(char*, const char*) = my_strcpy;
//写一个函数指针数组parr,能够存放4个my_strcpy函数的地址
答案:char* (*parr[4])(char*, const char*) = { my_strcpy };