05-04-設計模式 組合模式
阿新 • • 發佈:2022-05-27
函式指標
指向函式的指標,儲存著函式程式碼的起始處的地址。
宣告資料指標時,要宣告指標所指向的資料型別。函式指標要指明函式簽名,即引數和返回值
void (*pf) (int n); // 括號的優先順序高於*,所以要把*和指標名括起來。
// 可以指向無返回值接收一個整數為引數的函式
函式指標的作用主要是作為函式的引數,告訴函式要使用哪一個函式
#include<stdio.h> typedef struct { int a; int b; } St; int sum_(int a[]); void show(St s); void pfshow(void (*pf)(St s), St s); // 函式指標做引數 int main(void) { St s = {1,2}; void (*ps)(St s); // 函式指標可指向一個無返回值接收一個struct為引數的函式 ps = show; int (*pss)(int a[]); // 函式指標可指向一個返回整數的接收一個數組或者int指標為引數的函式 int arr[] = {1,2,3}; int *p; p = arr; pss = sum_; pss(p); pss(arr); ps(s); pfshow(ps, s); return 0; } void show(St s) { printf("%d, %d \n", s.a,s.b); } int sum_(int a[]) { int ans = 0; for(int i=0;i<3;i++) { ans+=a[i]; } printf("sum %d \n", ans); return ans; } void pfshow(void(*pf)(St st), St st) { printf("args fun pointer\n"); pf(st); }