#includevoid f1();//函數f1的聲明 void f2();//函數f2的聲明 void f3();//函數f3的聲明 void main() { void (*f[3])()={f1,f2,f3};//指向函數的指針數組的聲明 int flag; printf(請輸入一個1,2或者3.輸入0退出. ); scanf(%d,&flag); while(flag) { if(flag==1||flag==2||flag==3) { f[flag-1]();//通過函數指針調用數組中的函數 printf(請輸入一個1,2或者3.輸入0退出. ); scanf(%d,&flag); } else { printf(請輸入一個合法的數(1-3),0退出。 ); scanf(%d,&flag); } } printf(程序退出。 ); } void f1()//函數f1的定義 { printf(函數f1被調用! ); } void f2()//函數f2的定義 { printf(函數f2被調用! ); } void f3()//函數f3的定義 { printf(函數f3被調用! ); }
程序運行結果:
注意:函數指針不能執行像fun+1、fun++、fun--等運算。