c語言函數指針數組簡單案例
阿新 • • 發佈:2019-03-06
clas 函數指針 std 6.0 true 一個 不變 類型 輸出
本案例基於vc6.0的一個簡單的測試c語言函數指針數組的簡單案例,代碼放置如下:
#include<stdio.h> int fun1() { int a=4,b=5; int c; c=a+b; return c; } int fun2() { int a=3,b=2; int c; c=a+b; return c; } int fun3() { int a=6,b=7; int c; c=a+b; return c; } void main() { int (*pf[3])(); //定義了一個函數指針數組 int i; pf[0]=fun1; pf[1]=fun2; pf[2]=fun3; for(i=0;i<3;i++) { printf("%d\n",(*pf[i])()); } }
輸出結果如下:
我們把主函數函數指針數組的表達方式換一種,代碼貼下如下:
void main() { int (*pf[3])()={fun1,fun2,fun3}; int i; for(i=0;i<3;i++) { printf("%d\n",(*pf[i])()); } }
所運行的程序正確,並且運行結果與上述的保持一致;
把子函數都換成void 類型,那麽主函數裏面的函數指針數組類型int,void都可以,運行結果不變,代碼貼下如下:
#include<stdio.h> void fun1() { int a=4,b=5; int c; c=a+b; printf("c=%d\n",c); // return c; } void fun2() { int a=3,b=2; int c; c=a+b; printf("c=%d\n",c); // return c; } void fun3() { int a=6,b=7; int c; c=a+b; printf("c=%d\n",c); // return c; } void main() { void (*pf[3])()={fun1,fun2,fun3};//void類型,int類型都可以 int i; for(i=0;i<3;i++) { (*pf[i])(); //printf("%d\n",(*pf[i])()); } }
19/3/6
c語言函數指針數組簡單案例