#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 (*pa)(int x,int y) = Add;//Add可以替换为 Add || Sub || Mul || Div printf("%d\n",pa(2,3)); //输出 5 //函数指针数组——指向多个函数 int (*parr[4])(int x,int y) = {Add, Sub,Mul, Div}; int i = 0; for (i = 0;i < 4;i++)//输出 5 -1 6 0 { printf("%d ",parr[i](2,3)); } //识别下列数组是否正确 int (*parr1[10])(); //正确 //int *parr2[10]();//错误,语法错误,[10]先于()结合,不符合语法定义 //int (*)()parr3[10];//错误,同样是语法错误,应将 写为 int(*parr3[10])(); //char* my_strcpy(char* dest,const char* src); //1.写出一个函数指针 pf,能够指向my_strcpy char*(*pf(char*,const char*)); //2.写出一个函数指针数组pfArr,能够存放4个my_strlen函数地址 char* (*pfArr[4])(char*,const char*); }
函数指针的数组的辨析{直接上案例}
最新推荐文章于 2024-11-14 01:08:36 发布