其實很早就知道這樣的概念,只是今天想著來實現一下。首先來理解一下函式指標的定義。對於乙個函式原型為
int
push(lnode
*node,
int
data);
那麼我們定義函式指標應該為
int
(*p)(lnode
*node,
int
data);//定義乙個
函式指標,該指標指向帶lnode指標型別和int型別的兩個形參,並
返回int型別的值。
這裡要注意一點一定要加(*p)如果不加括號則變成了定義乙個函式。
int
*p(lnode
*node,
int
data);//定義乙個
函式,該函式帶有lnode指標型別和int型別的兩個形參,並返回
int指標型別的值。
如果我們要定義乙個返回指標型別的函式指標呢?
int *(*p)(lnode *node,int data);//定義乙個
函式指標,該函式指標帶有lnode指標型別和int型別的兩個形參,並且返回
int指標型別的值。
到這裡應該很清楚函式指標定義的技巧了把?
總結:定義函式指標即int/void/char/int*/struct/struct*+(*name)+(形參列表);
那麼正題來了。如何在結構體中實現部分物件導向的功能呢?很簡單。在結構體中定義函式指標。然後在指向對應函式。最後進行呼叫就ok啦。 例:
typedef structnode;
初始化:
int flag;//表示函式返回狀態
int arr=;
node node;
node=;//結構體函式指標初始化。
flag=node.del(node.elem);//呼叫結構體中定義的函式指標。
本次內容就到此為止了。
複製去google翻譯
.elem
c語言陣列實現ArrayList部分函式
include include 包含malloc函式 include 包含exit函式 定義乙個資料型別,該資料型別的名字叫做struct array,該資料型別含有三個成員,分別是 pbase len cnt struct array arraylist方法的實現 void init array ...
c語言 陣列及指標部分
prac1 實現從鍵盤任意輸入10個整數,用函式程式設計實現將其中最大數與最小數的位置對換後,再輸出調整後的陣列。include define arrsize 10 voidmaxminexchang inta,intn elseif a i minvalue temp a maxpos a max...
C語言 指標函式和函式指標
指標函式和函式指標 指標函式其實是乙個簡稱,是指帶指標的函式,它本質上是乙個函式,只是返回的是某種型別的指標。其定義的格式為 型別識別符號 函式名 參數列 函式指標,從本質上說是乙個指標,只是它指向的不是一般的變數,而是乙個函式。因為每個函式都有乙個入口位址,函式指標指向的就是函式的入口位址。其定義...