指向函式的指標使用例項 C語言實現

2021-09-11 20:19:35 字數 1886 閱讀 6403

指向函式的指標使用例項(c語言實現)

/作為小白的我第一次寫部落格,異常激動,會很認真地寫了。

我學習c語言一學期,喜歡分享和交流。/

函式由指令序列構成,其**儲存在一片連續的記憶體單元中,第乙個**所在的記憶體位址即為首位址,就是函式的入口位址。主函式在呼叫時,就是轉移到子函式的入口位址去執行。

那麼指標指向函式,就是指標的值為函式入口位址。注意區分它和指標函式的區別。

格式為:

型別 (*指標變數名)(參數列)

如:int (*func)(int x)

void (*func1)(int x,float *a)

注意,函式指標在使用前必須定義,必須初始化,指向函式的返回值型別和引數列表必須與指標變數定義時的型別一致

#includedouble square(double x);  //函式原型

int main()

double square(double x)

執行後,發現p(1.6),(*p)(1.6)的結果一致,這是因為編譯時自動對其處理,類似於陣列。

函式指標本身也可作為其他函式的引數,比如說你要對各種排序演算法的效能進行比較,用**實現排序後,比較笨的方法是自己手動測試,收集資料。這是俺大一時老師布置的一項大作業,類似於美國大學中的project,有人真的就自己手動測試(太笨了,hahahahahah)。其實可以這麼做。具體的排序演算法的實現我就不貼出來了。(建議先跳過下面這個**片段,回過頭再看)

#include#include#include#include#define len (n*sizeof(float))

#define create(pp) (pp=(float *)malloc(len))

#include"total_time.c" //統計時間

#include"make.c" //建立乙個巨大的陣列來測試排序

#include"bubble.c" //下面六個都是排序

#include"selectsort.c"

#include"insert.c"

#include"pile.c"

#include"quick.c"

#include"merge.c"

void print(float *x,long int n)

return((s-max-min)/6);

}double test(void(*p)(float *x,long int n),long int n)

return(analyse(t));

}int main()

我對每種排序進行8次測試,再統計均值,獲得乙個比較可信的資料,為了小範圍檢測是否有誤,又弄了個print函式,不過這都不重要,下面的才是上面這段**的精華。

double test(void(*p)(float *x,long int n),long int n)
這個就是用來傳入各函式的,注意引數x,n一直保持一致,這很重要,不然不匹配,就沒法編譯。total_time(p,x,n),這裡可以直接往total_time 這個函式裡放入p,等會我會貼出各引用函式的頭。

printf("bubble %lfs\n",test(bubble,n));
這是測試bubble排序的語句,往test中傳遞已有的函式名bubble和數n。

double total_time(void (*p)(float *x,long int n),float *x,long int n)
void make(float *x,long int n)
我是一名科大學子,對程式設計感興趣,能和大家交流想法,互相學習真的很棒。如果有瑕疵,還請朋友不吝指教。

C 語言實現指向函式的指標陣列例項

include include using namespace std class time time settime int h,int m,int s time sethour int h time setminute int m time setsecond int s 設定秒 int get...

C語言 指向函式的指標

1 函式型別 函式指標變數 指向函式的入口位址 乙個函式是若干語句的集合 經編譯後儲存在函式 儲存區 並占有一片連續的儲存空間 對函式指標只能用函式名賦值而無其他運算 include stdio.h 23 intmax intx inty 45 intmain 617 18int max intx ...

C語言 指向函式的指標

在c語言中,函式名代表函式的入口位址。可以定義乙個指標變數,接收函式的入口位址,讓它指向函式,這就是指向函式的指標,也稱函式指標。通過函式指標可以呼叫函式,它還可以作為函式的引數。函式指標的定義 函式指標定義的一般格式為 型別名 變數名 引數型別表 型別名指定函式返回值的型別,變數名是指向函式的指標...