C語言學習之 指向函式的指標和返回指標值的函式

2021-10-12 16:23:05 字數 1472 閱讀 1536

定義乙個函式process來有效結合這三個函式,通過指向函式的指標來完成這個步驟

指向函式的指標用如下格式來定義指標型別 (*指標變數名)()--->int(*p)()這個指標的型別適合指標指向的函式的返回值型別保持一致的,例如max函式的返回值型別是int,因此指向max函式的指標的型別也是int在呼叫process函式的時候,想用哪個函式來處理資料,就把目標函式的位址付給函式指標p即可;如下例所示。

之所以能夠直接用指標指向函式,是因為 c 的**執行的過程中,函式也會被載入記憶體從而開闢一塊記憶體空間,函式開始的語句的位址就是函式的位址,因此,可以用指標直接指向函式。

#include

intmax

(int x,

int y)

intmin

(int x,

int y)

intadd

(int x,

int y)

intprocess

(int x,

int y,

int(

*p)())

else

if(p==min)

else

return result;

}void

main()

用乙個例項來進行展示:

#define _crt_secure_no_warnings

#include

int*

search_student

(int

(*array)[4

],int index)

void

main()

,,};

int a;

printf

("請輸入您想要查詢的學生的序號:\n\n");

scanf

("%d"

,&a)

;int

*student_scores =

search_student

(array, a)

;printf

("第%d 個學生的成績是:\n\n%d %d %d %d"

C語言學習筆記之指向陣列元素的指標和指向陣列的指標

現有如下 執行結果為 通過這個例子,我個人的理解是 雖然列印陣列a和 a結果是相同的位址值,但所代表的意義是不同的。陣列名a代表陣列第乙個元素的位址,指標p和陣列名a其實是指向陣列元素的指標。指標pa是指向陣列a這個整體的指標,p和pa是不一樣的。也就是說p i是按照陣列元素的大小向前移動i,而pa...

C語言學習筆記 指向指標的指標 多級指標

在指向指標的指標這一塊,從大一開c語言課的時候就沒弄明白,現在快畢業了,重新拾起c語言,多少是明白了一點 在這塊的介紹上,文字描述太難懂太繞了,咱直接上例子,看 debug一下,看看記憶體和位址的分配情況就差不多能明白了 例項程式 程式輸出 the value of myvar is 12.the ...

C語言 指向函式的指標

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