函式指標的傳遞

2021-05-22 08:49:59 字數 562 閱讀 1018

本文討論函式指標的傳遞,主要分為普通函式指標 和類成員函式指標 :

1.普通函式指標

舉個例子先

只要求傳入函式和引數中函式原型一樣即可。

2.成員函式指標

成員函式位於類內部,要呼叫它必須要有具體的物件指標,即this指標,stfatic型別的成員函式除外,因為他在記憶體中只有乙份copy,共享使用,所以無需也沒有this指標。

2.1 傳遞函式指標給類成員函式

見下例子:

如上所示,可以定義乙個類成員指標型別的變數也可以直接將成員函式位址傳遞給函式效果一樣

2.2 傳遞成員函式指標給普通函式

見下例:

如上,為了給函式fun傳入物件指標,引數中加了乙個型別指標,為了使整個函式能通用一些,將其定義成模板函式,然後定義乙個temp型別物件,將其指標傳入,輸出結果和前面一樣。

總結:普通函式傳遞只要求原型一樣就行,但是類成員函式傳遞需要this指標,這樣編譯器才能找到這個函式指標屬於哪個物件,然後再去那個物件裡面找到函式位址,再呼叫這個函式,當然static總是個例外,因為他在記憶體中只有乙個copy,所以無需考慮this指標的情況。

傳遞指標和傳遞指標的指標

總是不懂指標 看了乙個csdn的問題 豁然開朗 在寫乙個棧的東西,在銷毀的時候有點小問題 define position int define size t int define elemtype char define buttom 1 struct ststack typedef struct ...

函式引數的傳遞問題(指標的指標)

程式1 void mymalloc char s 我想在函式中分配記憶體,再返回 s char malloc 100 void main char p null mymalloc p 這裡的p實際還是null,p的值沒有改變,為什麼?if p free p 程式2 void mymalloc cha...

C C 函式中指標的傳遞

主函式 qooks i s char malloc sizeof char 100 gets qooks i s qooks i qs char malloc sizeof char 100 qooks i num int malloc sizeof int processquerywords qo...