C 函式指標和指標函式

2022-04-04 14:05:38 字數 2088 閱讀 1036

本文參考

1.函式指標

函式指標是乙個指標,其指向的是乙個函式,而不是普通的資料型別或者類物件。其定義如下:

int (*func)(int a, int b);     //

宣告函式指標

函式指標的最大作用是將乙個函式作為引數傳遞給另乙個函式。函式指標的宣告與宣告乙個普通的函式原型差不多,除了函式指標的函式名需要被括在括號內,並在函式名前新增星號asterisk(*)。這就說明函式指標函式名是乙個指標,上面的函式指標func定義為乙個指向乙個返回值為整型,有兩個引數並且兩個引數都是整型的函式

下面是求兩個數的和和差的函式指標用法:

//

pointer to functions

#include using

namespace

std;

//求兩個數的和

int addition (int a, int

b) //

求兩個數的差

int subtraction (int a, int

b) int (*minus)(int,int) =subtraction;

int operation (int x, int y, int (*functocall)(int,int

))

int (*func)(int,int); //

宣告函式指標

intmain ()

2.指標函式

指標函式是帶指標的函式,其本質是乙個函式,只是返回型別是某一型別的指標

其定義如下:

型別說明符  (*)函式名 (引數列表);

int * func (int x,int y);

由上面的定義可以看出,指標函式是乙個返回值為位址型別的函式。需要注意的是:函式的返回值必須由同型別的指標變數來接受(也就是說,指標函式一定具有返回值)。其返回值的用法如下:

char *fun();        //

宣告乙個返回型別為char型別的指標函式

char *p; //

定義乙個char型別的指標變數,用來接收fun()的返回值

p=fun();

指標函式的使用例項:

#includeusing

namespace

std;

int * getdate(int week,int day); //

宣告指標函式

intmain()

while(week<1||week>5||day<1||day>7

) cout

<

去引用獲得該位址下的元素值

cout<

system(

"pause");

return0;

}

int * getdate(int week,int

day)

, ,,,

};return &calendar[week-1][day-1]; //

返回指向calendar某個元素的位址

}

#includeusing

namespace

std;

int *f(int a, int b); //

宣告指標函式

intmain()

/** 指標函式的定義

* 返回值是指標型別int *

*/int *f(int a, int

b)

執行結果如下:

C 指標函式和函式指標

1 指標函式 1 基本概念 指標函式 顧名思義就是帶有指標的函式,即其本質是乙個函式,只不過這種函式返回的是乙個對應型別的位址。2 定義式 type func type type 如 int max int x,int y 3 例子詳解 cpp view plain copy 1.include 2...

c 指標函式和函式指標

函式指標與指標函式 1 函式指標 形式 返回型別 函式名 參數列 一種特殊的指標,它指向函式的入口 定義乙個函式指標p,只能指向返回值為int,形參為兩個int的函式 輸出結果 include stdafx.h include using namespace std int p int,int in...

C 函式指標和指標函式

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