#include <stdio.h> int Add(int x,int y) { return x + y; } int Eor(int x, int y) { int ret = x ^ y; return ret; } 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; } //关键是看这个arr与谁先结合,谁就是类型 int main() { //指针数组 int* arr[10]; //数组指针 int*(*pa)[10]; //指针数组赋值给数组指针 pa = &arr; //或者将上边语句改为int*(*pa)[10] = &arr; //函数指针 int (*pArr)(int,int); //将Add函数赋值给pArr pArr = Add; //赋值 printf("%d",pArr(2,3));//输出为5 //函数指针的数组 int (*pArt[5])(int,int); //赋值 pArt[0] = Add; pArt[1] = Sub; pArt[2] = Mul; pArt[3] = Div; pArt[4] = Eor; //另一种赋值方式是 错误的!!! //int (*pArt[5])(int,int)={Add, Sub,Mul,Div,Eor}; //指向函数指针数组的指针 int(*(*ppArt)[5])(int,int); //将pArt赋值给ppAet ppArt = &pArt; //赋值 printf("Add: %d\n", pArt[0](10, 5)); //输出:15 printf("Sub: %d\n", pArt[1](10, 5)); //输出:5 printf("Mul: %d\n", pArt[2](10, 5)); //输出:50 printf("Div: %d\n", pArt[3](10, 5)); //输出:2 printf("Eor: %d\n", pArt[4](10, 5)); //输出:15 }
小结:指针数组,数组指针,函数指针,函数指针的数组,指向函数指针数组的指针
于 2024-09-13 12:41:20 首次发布