C 函式指標與指標函式

2021-09-23 21:58:14 字數 1523 閱讀 9779

函式指標:

函式名本身代表著函式的位址因此給數指標賦值使可以不用加&符號「加也可以!!!」

void

func

(int);

//定義乙個函式

void

(*pf)(

int);

//定義乙個函式指標

pf=func;

//給函式指標賦值

int *f(x,y);

其中x,y是形式引數,f是函式名,呼叫後返回乙個指向整型資料的位址指標。

f(x,y)是函式,其返回值是指標。

指標函式,簡單的來說,就是乙個返回指標的函式,其本質是乙個函式,而該函式的返回值是乙個指標。

宣告格式為:型別識別符號  * 函式名(參數列)

int *fun(int x,int y); 

int * fun(int x,int y); 

int* fun(int x,int y);

函式指標,其本質是乙個指標變數,該指標指向某個函式。總結來說,函式指標就是指向函式的指標。

宣告格式:型別說明符 (*函式指標名) (引數)

int(*fun)(int x,int y);

fun = &function

fun = function; 取位址運算子&不是必需的,因為乙個函式識別符號就表示了它的位址,如果是函式呼叫,還必須包含乙個圓括號括起來的參數列。

x = (*fun)(); 建議使用第一種,因為可以清楚的指明這是通過指標的方式來呼叫函式。

x = fun();

指標函式本質是乙個函式,其返回值為指標。

函式指標本質是乙個指標,其指向乙個函式。

a) char * (*fun1)(char * p1,char * p2);

b)char * *fun2(char * p1,char * p2);

c)char *fun3(char * p1,char * p2);

...關於c,fun3是函式名,p1,p2是引數,其型別為char *型,函式的返回值為char *型別。

...關於b, 與c 表示式相比,唯一不同的就是函式的返回值型別為char**,是個二級指標。

...關於a, 返回指標 の 函式指標: int* function(int x,int y) ->->-> fun1 =function

C 函式指標與指標函式

c 要是不常用,相信過四天你的指標函式與函式指標的概念就該忘個精光。其實只要記住誰在後面誰就是哪個本質。先了解下指標陣列與陣列指標吧 陣列指標 就是指向陣列的指標,它表示的是乙個指標,它指向的是乙個陣列,它的重點是指標,如,int pa 8 宣告了乙個指標,該指標指向了乙個有8個int型元素的陣列 ...

C 指標函式與函式指標

指標預熱知識 1 指標就是位址 2 指標的型別應該與變數型別匹配 例如 int a 2 指標pa是int 型別,所以只能存放int型別變數a的位址 絕對不能存放char double.等型別變數的位址 int pa a include stdafx.h include using namespace...

c指標陣列與陣列指標與指標函式與函式指標筆記

include include typedef struct t ooxx t ooxx,pt ooxx 測試陣列指標 void test ooxx arrayp t ooxx p int num 測試指標陣列 void test ooxx parray t ooxx p,int num 測試函式指...