#include <stdio.h>intAddintAintb) {printf ("%d\t%d\n", A, b); returnA +b;}CharMax_ch (Char*str) { intMax, I; Max=0; for(i =0; Str[i]! =' /'; i++) if(Str[i] >Str[max]) Max=i; returnStr[max];}intMain1 (void){ intRes; int(*p) (int,int); P=add; Res= P (3,5); //res = Add (3, 5);printf"%d\n", RES); Char(*Q) (Char*); Q=max_ch; printf ("%c\n", Q ("Hello")); return 0;}voidOx_say (Char*str) {printf ("%s\n", str);}voidDog_say (Char*str) {printf ("%s\n", str);}voidMan_say (Char*str) {printf ("%s\n", str);}voidSay_what (void(*p) (Char*),Char*s) { //...p (s);}//function pointers as arguments to functionsintMainvoid){ intnum; while(1) {scanf ("%d", &num); Switch(num) { Case 1: Say_what (Ox_say,"mn mn"); Break; Case 2: Say_what (Dog_say,"Wang Wang"); Break; Case 3: Say_what (Man_say,"Oh, yeah"); Break; } } return 0;}
C Basis-function pointers as parameters of functions